LINUX.ORG.RU

PCI драйвер и взаимодействующее приложение


0

0

Написал простой PCI драйвер для самодельной платы (один регистр на ввод/вывод). Теперь пишу приложение, которое должно, используя этот драйвер, писать и читать с порта. Вопрос: как научить их взаимодействовать? Для символьных устройств в ldd3 написано, нужно создать устройство в /dev и его открывать. А можно ли не создавая как-нибудь? Ну, через /proc к примеру?
p.s. валенками не кидайтесь, я только два месяца назад linux увидел впервые. Опыта в написании драйверов и приложений практически нет.

Кагбэ нельзя. В этом и есть прикол, чтобы представить устройство как файл, и потом стандартными файловыми функциями производить чтение/запись.

Viglim
()
Ответ на: комментарий от DJohn2517

> А можно автоматизировать создание? Чтобы не ручками? Например при инициализации драйвера?

man udev

eXire ★★
()

Я бы тебе сказал просто асмом совать нужные тебе данные в регистры, но это, видимо, для Ъ.

Zhbert ★★★★★
()
Ответ на: комментарий от Zhbert

Мне прерывания нужно обрабатывать... Нарямую писать в порты через inb и т.д. не вариант. Воспользуюсь советом из LDD - скрипт напишу для инициализации. И major динамический и устройство создается/удаляется... Но я все еще открыт для советов и готов идти по пути просвещения к лучезарным пингвинам!

DJohn2517
() автор топика

Мне кажется, что в твоем случае должно хватить UIO.

vga ★★
()

>Для символьных устройств в ldd3 написано, нужно создать устройство в /dev и его открывать. А можно ли не создавая как-нибудь? Ну, через /proc к примеру?

Можно экспортировать информацию об устройстве через /sys (как это делается можно посмотреть в исходниках, например, kqemu).

Ну и написать правило для udev, которое будет создавать соотв. символьное устройство (как было упомянуто выше — man udev)

Sectoid ★★★★★
()
Ответ на: комментарий от Sectoid

Спасибо всем за помощь. Мало по-малу разобрался. Дюмаю, тему можно закрывать.

DJohn2517
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.