Почему не срабатывает драйвер?-213.08.2016, 18:31. Показов 1134. Ответов 6
Метки нет (Все метки)
Здравствуйте!
Продолжаю писать модуль под мышь. Добился того, что драйвер встраивается в систему и отправляет данные в userspace. Мышь реагирует. Но в буффер в userspace приходят нули, а функция usb_interrupt_msg() в драйвере возвращает отрицательное значение. Поэтому не могу реализовать функцию движения курсора. Подскажите, пожалуйста, что не так в драйвере. Вот код драйвера:
0
|
|||||||||||||||||||||
| 13.08.2016, 18:31 | |
|
Ответы с готовыми решениями:
6
Почему не срабатывает? Почему не срабатывает SetTimeout? |
| 14.08.2016, 20:26 [ТС] | |||||||||||
|
Как оказалось, ошибка -110 ( ETIMEDOUT) в выводе драйвера несущественна. Она просто означает, что мышка не двигалась. Когда мышка движется, функция usb_interrupt_msg() возвращает 0 и данные пересылаются.
Но пересылаются в буффер только нули. Может кто подсказать почему? Не могу понять... Вот новый код драйвера:
0
|
|||||||||||
|
Почетный модератор
11559 / 4353 / 453
Регистрация: 12.06.2008
Сообщений: 12,455
|
|||
| 14.08.2016, 22:16 | |||
1
|
|||
| 15.08.2016, 12:50 [ТС] | |
|
Ладно, подумаю над этим...
Добавлено через 14 часов 24 минуты Нет, функцию вроде менять не надо, судя по этой статье: http://dmilvdv.narod.ru/Transl... _urbs.html Просто я заменил usb_bulk_msg на usb_interrupt_msg. Эти функции индентичны но предназначены для получения и отправки данных от устройств с разными скоростями - usb_bulk_msg для флешек и других mass storage, а usb_interrupt_msg для более медленных мыши и клавиатуры. Как оказалось, массив int_buf нужно было зарезервировать в памяти через kmalloc (). И тогда данные стали приходить. Но опять же, эти данные не меняются и вообще, непонятно, что это за данные. Я думал это координаты курсора... :-(
0
|
|
|
Почетный модератор
11559 / 4353 / 453
Регистрация: 12.06.2008
Сообщений: 12,455
|
||
| 16.08.2016, 00:33 | ||
|
1
|
||
| 16.08.2016, 13:20 [ТС] | |
|
Спасибо, Humanoid, мне сейчас попалась книга про драйвера для Линукса Джонатана Корбета и двух соавторов, третье издание, на русском языке. Там досконально описано, как написать драйвер для USB-устройства. Буду вечером переделывать и смотреть, что получится...
0
|
|
| 17.08.2016, 21:46 [ТС] | |
|
УРА!!! ПОЛУЧИЛОСЬ!!!
![]() Оказывается, что int_buf нужно было задавать через поинтер, и соответственно kmalloc тоже делать через поинтер Данные успешно считываются и меняются, осталось только курсор присобачить в userspace.
0
|
|
| 17.08.2016, 21:46 | |
|
Помогаю со студенческими работами здесь
7
Почему не срабатывает импортёр? Почему не срабатывает ScrollViewer Почему не срабатывает return? Почему не срабатывает инкремент?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|