LINUX.ORG.RU

Сообщения kamov

 

Помогите получить данные от PCI-устройства

Здравствуйте, уважаемые дамы и господа.
Помогите, пожалуйста, с получением данных от PCI устройства.
Коротко: есть машина с архитектурой PowerPC c ОС ELDK Linux 2.6.14 на борту. В ней установлено устройство на шине PCI. Оно асинхронно выдает данные пачками по 32 бита на некоторый адрес в PCI. Требуется иметь возможность в пользовательской программе (с какими угодно правами) в произвольный момент времени считывать текущее (последнее по порядку и только его) значение этих 32-ух бит.

Подробно:

( читать дальше... )

В качестве попытки был предпринят отважный маневр копипасты с имеющегося в сети интерфейса взаимодействия с драйвером этого PCI-устройства. В частности, пробовал использовать функции kmalloc() для выделения буфера в реальной памяти, virt_to_bus() для получения адреса PCI, соответствующего смещению адреса буфера в реальной памяти. Ничего не вышло: заголовочный файл linux/slab.h работает только если #define __KERNEL__. Но при таком дефайне не собирается другой заголовочный файл stdder.h c руганью на синтаксис в части enum {false = 0, true =1};. Если закомментить этот кусок кода, то gcc вываливает тонны ошибок, среди которых неверный синтаксис, деление на ноль, «Я проиграл» и прочее.
Пробовал также действовать через __get_free_page(), результат примерно тот же.
Скажите, что мне делать, пожалуйста.

 , , , vme,

kamov
()

RSS подписка на новые темы