Как решить «ОШИБКА: планирование в атомарном режиме: swapper / 0x00000103 / 0, CPU # 0»? в драйвере TSC2007?

Я нашел драйвер 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 (). но они размыты для меня сейчас. Кто-нибудь есть идеи, как решить эту проблему, и может дать мне несколько советов, с чего начать использовать рабочую очередь.

22
задан John Saunders 22 August 2010 в 01:54
поделиться

1 ответ

«Планирование в то время как атомарное» означает, что вы пытались спать в том месте, где вам не следует спать - например, в критическом разделе, защищенном спин-блокировкой, или в обработчике прерывания.

Типичные примеры вещей, которые могут спать: mutex_lock () , kmalloc (..., GFP_KERNEL) , get_user () и put_user () .

33
ответ дан 29 November 2019 в 04:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: