Я нашел драйвер tsc2007 и изменил его в соответствии с нашими потребностями. Наша фирма производит собственную плату TI DM365. В этой плате мы использовали TSC2007 и подключили вывод PENIRQ к GPIO0 DM365. Это замечено на водителе. когда я касаюсь сенсорного экрана, курсор движется, но в то же время я получаю предупреждение
BUG: scheduling while atomic: swapper /0x00000103/0, CPU#0
и происходит сбой встроенного Linux. есть 2 файла, которые я изменил и загрузил на http://www.muhendislikhizmeti.com/touchscreen.zip один с таймером другой нет. в любом случае он выдает эту ошибку.
В сети я нашел решение, в котором мне нужно использовать рабочую очередь и вызывать с помощью API schedule_work (). но они размыты для меня сейчас. Кто-нибудь есть идеи, как решить эту проблему, и может дать мне несколько советов, с чего начать использовать рабочую очередь.
«Планирование в то время как атомарное» означает, что вы пытались спать в том месте, где вам не следует спать - например, в критическом разделе, защищенном спин-блокировкой, или в обработчике прерывания.
Типичные примеры вещей, которые могут спать: mutex_lock ()
, kmalloc (..., GFP_KERNEL)
, get_user ()
и put_user ()
.