- RE: обращение к портам ввода/вывода, qq, 02:15 , 12-Фев-03 (1)
>Нужно написать прогу под Free BSD, которая напрямую обращается к "железным" портам >ввода/вывода. Как это сделать? Именно под Free BSD! Если не трудно, >бросьте, в качестве иллюстрации, маленький исходничек. >Заранее благодарен. http://forum.ixbt.com/0026/004148.html - RE: обращение к портам ввода/вывода, spf, 07:25 , 12-Фев-03 (2)
>Нужно написать прогу под Free BSD, которая напрямую обращается к "железным" портам >ввода/вывода. Как это сделать? Именно под Free BSD! Если не трудно, >бросьте, в качестве иллюстрации, маленький исходничек. >Заранее благодарен. Напрямую с железом? Тогда писать свой драйвер.
- RE: обращение к портам ввода/вывода, Bilbo, 10:57 , 13-Фев-03 (3)
>>Нужно написать прогу под Free BSD, которая напрямую обращается к "железным" портам >>ввода/вывода. Как это сделать? Именно под Free BSD! Если не трудно, >>бросьте, в качестве иллюстрации, маленький исходничек. >>Заранее благодарен. > >Напрямую с железом? Тогда писать свой драйвер. Где можно найти информацию по написанию драйверов под FreeBSD? Лучше на русском и с примерами.
- RE: обращение к портам ввода/вывода, spf, 13:34 , 13-Фев-03 (4)
>Где можно найти информацию по написанию драйверов под FreeBSD? Лучше на русском >и с примерами. Насчет русского врядли... Ищи примеры в документации на FreeBSD. Если из дистрибутива ставил doc, то многое можно найти в каталоге /usr/share/. Может помочь сайт http://docs.freebsd.org/
- RE: обращение к портам ввода/вывода, NL, 14:10 , 13-Фев-03 (5)
>Нужно написать прогу под Free BSD, которая напрямую обращается к "железным" портам >ввода/вывода. Как это сделать? Именно под Free BSD! Если не трудно, >бросьте, в качестве иллюстрации, маленький исходничек. >Заранее благодарен. в свое время, когда у меня была подобная задача только под линукс я перелопатил драйвер LPT порта и в parport_pc.h и parport.h нашел вот такие функции inb() и outb(), читает и записывает данные соответствено. Самые что ни на есть низкоуровневые функции доступа к железным портам, почти ассемблер. Так вот может они есть и во ФриБСД. или одноименные хедеры посмотри, может что нароешь.
- RE: обращение к портам ввода/вывода, Bilbo, 17:18 , 26-Фев-03 (6)
>>Нужно написать прогу под Free BSD, которая напрямую обращается к "железным" портам >>ввода/вывода. Как это сделать? Именно под Free BSD! Если не трудно, >>бросьте, в качестве иллюстрации, маленький исходничек. >>Заранее благодарен. > >в свое время, когда у меня была подобная задача только под линукс >я перелопатил драйвер LPT порта и в parport_pc.h и parport.h нашел >вот такие функции inb() и outb(), читает и записывает данные соответствено. >Самые что ни на есть низкоуровневые функции доступа к железным портам, >почти ассемблер. Так вот может они есть и во ФриБСД. или >одноименные хедеры посмотри, может что нароешь. Лю-ю-ю-ди-и-и! Есть ли справедливость в этой жизни!? Я не могу слинковать прогу, обращающуюся к портам ввода/вывода под FreeBSD, через функции outp/inp! Такое впечатление, что в libc вообще нет таких функций! Я поставил gcc3 легче не стало. Может во фрюхе вообще с портами другая техника работы? Методика open/lseek/write/close тоже не помогает, а на меня начальство наседает, я просто в шоке! Помогите! Не дайте пропасть тупому программеру.
- RE: обращение к портам ввода/вывода, qq, 00:37 , 27-Фев-03 (7)
>>>Нужно написать прогу под Free BSD, которая напрямую обращается к "железным" портам >>>ввода/вывода. Как это сделать? Именно под Free BSD! Если не трудно, >>>бросьте, в качестве иллюстрации, маленький исходничек. >>>Заранее благодарен. >> >>в свое время, когда у меня была подобная задача только под линукс >>я перелопатил драйвер LPT порта и в parport_pc.h и parport.h нашел >>вот такие функции inb() и outb(), читает и записывает данные соответствено. >>Самые что ни на есть низкоуровневые функции доступа к железным портам, >>почти ассемблер. Так вот может они есть и во ФриБСД. или >>одноименные хедеры посмотри, может что нароешь. > > >Лю-ю-ю-ди-и-и! Есть ли справедливость в этой жизни!? Я не могу слинковать прогу, >обращающуюся к портам ввода/вывода под FreeBSD, через функции outp/inp! Такое впечатление, >что в libc вообще нет таких функций! Я поставил gcc3 легче >не стало. Может во фрюхе вообще с портами другая техника работы? >Методика open/lseek/write/close тоже не помогает, а на меня начальство наседает, я >просто в шоке! Помогите! Не дайте пропасть тупому программеру. хмм... ссылку видел? поглядел чё там? там пример программы, которая делает вывод в порты из пользовательского режима она компилируется и работает ну раз уж так трудно гулять по ссылкам, скопирую оттуда: #include <stdio.h> #include <fcntl.h> #include <machine/cpufunc.h>
int main(int argc,char* argv[]) { int val,port; int fd; if(argc<3){fprintf(stderr,"usage: %s port value\n",argv[0]); exit(1);} if(sscanf(argv[1],"0x%x",&port) && sscanf(argv[2],"0x%x",&val)) { fd=open("/dev/io",O_RDWR); if(fd==-1){perror("open");exit(1);} outb(port,val); close(fd); } else {fprintf(stderr,"port and value must be in hex format with 0x prefix\n"); exit(1);} } компилируем: # gcc outb.c -o outb запускаем: # ./outb 0x3f2 0x10 лампочка дисковода загорелась # ./outb 0x3f2 0x0 потухла
- RE: обращение к портам ввода/вывода, Bilbo, 16:40 , 27-Фев-03 (8)
>#include <stdio.h> >#include <fcntl.h> >#include <machine/cpufunc.h> > >int main(int argc,char* argv[]) >{ >int val,port; >int fd; > >if(argc<3){fprintf(stderr,"usage: %s port value\n",argv[0]); exit(1);} >if(sscanf(argv[1],"0x%x",&port) && sscanf(argv[2],"0x%x",&val)) >{ >fd=open("/dev/io",O_RDWR); >if(fd==-1){perror("open");exit(1);} >outb(port,val); >close(fd); >} >else >{fprintf(stderr,"port and value must be in hex format with 0x prefix\n"); exit(1);} > > >} > >компилируем: ># gcc outb.c -o outb >запускаем: ># ./outb 0x3f2 0x10 >лампочка дисковода загорелась ># ./outb 0x3f2 0x0 >потухла Огромное спасибо!!! Заработало! Я ваш должник! Это просто праздник какой-то!
|