Доступ к Memory PCI

Модератор: Модераторы разделов

drifterlom
Сообщения: 34

Доступ к Memory PCI

Сообщение drifterlom »

В темах ранее мне помогли разобраться с доступом к I/O портам. Теперь хочу разобраться с регистрами отображенными в память.
При запросе lspci -v для моей платы выдается два базовых адреса I/O и еще два 32-х битных адреса Memory at .....
В мануале на карту расписаны все регистры и написано примерно следующее "при программировании на низком уровне помните что различные регистры могут иметь различные базовые адреса и методы доступа, и поэтому пользуйтесь нашими дровами под винду" (про винду эт от меня ибо других нет).
Примерно так и получилось. Этот АЦП при записи в base+0 преобразует сигнал и с base+0 уже можно читать результат. записывает результат он в свои регистры в очередь FIFO. Чтобы обнулить очередь написано, что нужно записать в base+3, но запись туда с любым из двух 16 битным I/O base ни к чему не приводит.
Вывода может быть два, либо я что-то не так делаю либо эти регистры действительно с другим 32-х битым base.
Если второе то расскажите можно ли из user space обратиться к этим регистрам. В инете прочел про функции readb, writeb, readw, writew. Но где они объявлены не нашел.
Спасибо сказали:
Аватара пользователя
Wagan
Сообщения: 38
ОС: ALT Linux/FreeBSD/uCOS-II/Win

Re: Доступ к Memory PCI

Сообщение Wagan »

Не могу догадаться, о какой плате АЦп Вы говорите, но у большинства подобных устройств устроено таким образом, что по базовому адресу вы "пропихиваете" адреса внутреннойстей карты, к которым желаете адресоваться, и втаком режиме используется следующая последовательность: по одному и тому же адресу прописывается адрес внутреннего регистра, команда, данные (если пишем). Если выполняем чтение, то: адрес, команда и в ответ получаем считанные данные. Если платка известного производителя, то скорее всего под Линукс уже кто-то что-то делал, или на ресурсах производителей известного софта для подобных применений, можно поискать пояснения по написанию собственных драйверов.

Один из вариантов ПО по теме LabView, здесь скорее всего не найдете свою плату, но подходы в поиске можно подсмотреть. Многие производители устройств сбора и обработки делают драйверы под LabView, так как это приличный иснтрумент для инженера.
С уважением,
Ваган Саруханов
Спасибо сказали:
Аватара пользователя
Wagan
Сообщения: 38
ОС: ALT Linux/FreeBSD/uCOS-II/Win

Re: Доступ к Memory PCI

Сообщение Wagan »

P.S. Пересмотрел Ваши посты, нашел название платы, видимо, речь идет о ADLINK PCI-6216.
Посмотрел на сайте производителя в разделе поддержки есть какой-то дополнительный архив:
V3.21,VEE ™ Interface for ADLINK PCI/cPCI Series Data Acquisition Cards (только для зарегистрированных), но при скачивании жутко тормозит, попробуйте сами.
С уважением,
Ваган Саруханов
Спасибо сказали: