The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"обращение к портам ввода/вывода"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"обращение к портам ввода/вывода"
Сообщение от Bilbo emailИскать по авторуВ закладки on 11-Фев-03, 16:52  (MSK)
Нужно написать прогу под Free BSD, которая напрямую обращается к "железным" портам ввода/вывода. Как это сделать? Именно под Free BSD! Если не трудно, бросьте, в качестве иллюстрации, маленький исходничек.
Заранее благодарен.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: обращение к портам ввода/вывода"
Сообщение от qq Искать по авторуВ закладки on 12-Фев-03, 02:15  (MSK)
>Нужно написать прогу под Free BSD, которая напрямую обращается к "железным" портам
>ввода/вывода. Как это сделать? Именно под Free BSD! Если не трудно,
>бросьте, в качестве иллюстрации, маленький исходничек.
>Заранее благодарен.

http://forum.ixbt.com/0026/004148.html

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: обращение к портам ввода/вывода"
Сообщение от spf Искать по авторуВ закладки on 12-Фев-03, 07:25  (MSK)
>Нужно написать прогу под Free BSD, которая напрямую обращается к "железным" портам
>ввода/вывода. Как это сделать? Именно под Free BSD! Если не трудно,
>бросьте, в качестве иллюстрации, маленький исходничек.
>Заранее благодарен.

Напрямую с железом? Тогда писать свой драйвер.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: обращение к портам ввода/вывода"
Сообщение от Bilbo emailИскать по авторуВ закладки on 13-Фев-03, 10:57  (MSK)
>>Нужно написать прогу под Free BSD, которая напрямую обращается к "железным" портам
>>ввода/вывода. Как это сделать? Именно под Free BSD! Если не трудно,
>>бросьте, в качестве иллюстрации, маленький исходничек.
>>Заранее благодарен.
>
>Напрямую с железом? Тогда писать свой драйвер.


Где можно найти информацию по написанию драйверов под FreeBSD? Лучше на русском и с примерами.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "RE: обращение к портам ввода/вывода"
Сообщение от spf Искать по авторуВ закладки on 13-Фев-03, 13:34  (MSK)
>Где можно найти информацию по написанию драйверов под FreeBSD? Лучше на русском
>и с примерами.

Насчет русского врядли...
Ищи примеры в документации на FreeBSD. Если из дистрибутива ставил doc, то многое можно найти в каталоге /usr/share/. Может помочь сайт http://docs.freebsd.org/

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "RE: обращение к портам ввода/вывода"
Сообщение от NL Искать по авторуВ закладки on 13-Фев-03, 14:10  (MSK)
>Нужно написать прогу под Free BSD, которая напрямую обращается к "железным" портам
>ввода/вывода. Как это сделать? Именно под Free BSD! Если не трудно,
>бросьте, в качестве иллюстрации, маленький исходничек.
>Заранее благодарен.

в свое время, когда у меня была подобная задача только под линукс я перелопатил драйвер LPT порта и в parport_pc.h и parport.h нашел вот такие функции inb() и outb(), читает и записывает данные соответствено. Самые что ни на есть низкоуровневые функции доступа к железным портам, почти ассемблер. Так вот может они есть и во ФриБСД. или одноименные хедеры посмотри, может что нароешь.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "RE: обращение к портам ввода/вывода"
Сообщение от Bilbo emailИскать по авторуВ закладки on 26-Фев-03, 17:18  (MSK)
>>Нужно написать прогу под Free BSD, которая напрямую обращается к "железным" портам
>>ввода/вывода. Как это сделать? Именно под Free BSD! Если не трудно,
>>бросьте, в качестве иллюстрации, маленький исходничек.
>>Заранее благодарен.
>
>в свое время, когда у меня была подобная задача только под линукс
>я перелопатил драйвер LPT порта и в parport_pc.h и parport.h нашел
>вот такие функции inb() и outb(), читает и записывает данные соответствено.
>Самые что ни на есть низкоуровневые функции доступа к железным портам,
>почти ассемблер. Так вот может они есть и во ФриБСД. или
>одноименные хедеры посмотри, может что нароешь.


Лю-ю-ю-ди-и-и! Есть ли справедливость в этой жизни!? Я не могу слинковать прогу, обращающуюся к портам ввода/вывода под FreeBSD, через функции outp/inp! Такое впечатление, что в libc вообще нет таких функций! Я поставил gcc3 легче не стало. Может во фрюхе вообще с портами другая техника работы? Методика open/lseek/write/close тоже не помогает, а на меня начальство наседает, я просто в шоке! Помогите! Не дайте пропасть тупому программеру.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "RE: обращение к портам ввода/вывода"
Сообщение от qq Искать по авторуВ закладки on 27-Фев-03, 00:37  (MSK)
>>>Нужно написать прогу под 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
потухла

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "RE: обращение к портам ввода/вывода"
Сообщение от Bilbo emailИскать по авторуВ закладки on 27-Фев-03, 16:40  (MSK)
>#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
>потухла


Огромное спасибо!!! Заработало! Я ваш должник!
Это просто праздник какой-то!

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру