Подскажите с f->f_op->read
RXL:
Я так и не понял, зачем ты используешь spin_lock_bh - тебе, как я понимаю, надо тут только проверить, первый ли раз загружен модуль?
Посмотри исходники чужих драйверов - умных мыслей там хватает.
Рекомендую почитать книгу Linux Device Drivers. Она лежит на club.sheltk.com в разделе файлов.
opushkin:
spin_lock_bh везде кроме прерывания таймера - это паранойя. Книга эта у меня есть, с переводами, главу 14 тоже смотрел, ну не хочется мне связываться с прерываниями на приёме - громоздко получается, да и не всё там в Линухе себе пока представляю. Нужна простая и наглядная вещь для демонстрации, пусть даже и плохо работающая (всмысле -медленно). А что ему, этому read надо так и не могу понять. Кстати, вышеприведённый вариант тоже как надо не работает. Попробую пока сделать полностью передачу и приём по опросу с таймером через FIFO UART. А эту проблему оставлю для досуга, вместо кросворда.
Спасибо за помощь. :-/
RXL:
Не рекомендую работать с железом напрямую. Можно вызвать конфликт с существующими драйверами.
opushkin:
Согласен, но сдесь вроде железяка (UART) локализована и ресурсы ни с кем не делит. Программирование сводится к прямому отключению прерываний и буферизации (к сожалению завязана с прерываниями), а дальше работа только с регистром данных. А вдруг прояснится с file, так всегда можно переделать.
RXL:
Давай позже разберем - чейчас -
Я несколько лет назад пробовал брайвер писать - надо тоько вспомнить, что зачем. :beer:
Навигация