Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > *NIX и Hardware > Прямое обращение к портам ввода-вывода.


Автор: Racot 1.8.2012, 22:41
У меня есть железка с портами ввода-вывода которая подвешивается к системе с Linux по определённым фиксированным адресам. Мне просто нужно писать и читать порты ввода вывода.

Я так предполагаю что мне можно это сделать на пользовательском уровне (прерываний нет - только периодическое чтение-запись). Вычитал что можно писать/читать прямо в физичискую память через файл /dev/mem .

1) Это действитвительно так делается? 
2) Что насчёт захвата системных ресурсов? мне нужно как-то в системе резервировать определённе адреса под устройство?(чтобы другое устройство не разместилось по этим же адресам   - вроде функции есть такие как check_mem_region(),request_mem_region()....) .


Или я вобще всё не так понимаю? Разъясте пожалуста как можно проще - я в этих делах не селён))

Автор: LosAngelеs 15.9.2012, 23:54
Цитата

1) Это действитвительно так делается? 

ioperm + open + mmap и читаешь\пишешь, только ioperm даёт доступ к первым 3ff портам, если нужны остальные, то нужно использовать iopl 

Автор: tzirechnoy 16.9.2012, 11:57
Цитата
1) Это действитвительно так делается? 


Ни разу не видел полезного использования /dev/mem на линуксах.

Цитата
2) Что насчёт захвата системных ресурсов?


Если жэлезка PCI -- то конфигуратор шыны сам разберётся. Если ISA -- то всё тяжэлее, но как-то для PCI выбирают диапазоны адресов, нетрадицыонные для использования в ISA.


Автор: LosAngelеs 21.9.2012, 19:06
Цитата

Ни разу не видел полезного использования /dev/mem на линуксах.

svgalib

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)