реклама на сайте
подробности

 
 
> драйвер клавиатуры, как написать?
VDV
сообщение May 24 2010, 11:15
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 152
Регистрация: 18-03-06
Пользователь №: 15 366



есть: несколько кнопок.
надо: чтобы нажатие на них воспринималось как нажатие заданных кнопок на клавиатуре.

непонятно как это сделать, ибо:
драйвер клавиатуры - это обычно /dev/tty
то есть tty устройство.
смотрим
/linux/drivers/char/keyboard.c
это tty устройство но без общения с физикой.
то есть некий промежуточный слой?
какие функции он выполняет?

смотрим
/linux/drivers/input/serio/i8042.c
это общение с физикой. но это не tty драйвер.
как тогда он работает?
в функции обработки прерывания видим serio_interrupt, видимо, это и есть передача данных следующему уровню обработки?

далее, если посмотреть исходник
/libminigui-1.6.10/src/gui/keyboard.c
, то там находится код, очень похожий на код в /linux/drivers/char/keyboard.c
при этом клавиатура используется в режиме MEDIUM_RAW.
какой смысл его было повторять авторам этой библиотеки?

каким же образом работает подсистема ввода?
как написать драйвер под свои кнопки, написав минимальный код и задействовав по макимуму уже написанный код в ядре?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
mdmitry
сообщение May 25 2010, 09:31
Сообщение #2


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



stdin c клавиатуры, stdout куда надо, stderr как надо. Три потока и работать как с потоками. Нажатие кнопок обрабатывать своим драйвером.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 3rd August 2025 - 09:23
Рейтинг@Mail.ru


Страница сгенерированна за 0.01352 секунд с 7
ELECTRONIX ©2004-2016