Ich fand TSC2007 Treiber und modifiziert nach unseren Bedürfnissen. Unsere Firma produziert ein eigenes TI DM365 Board. In dieser Platine haben wir TSC2007 verwendet und den PENIRQ-Pin mit GPIO0 von DM365 verbunden. Es ist OK auf Fahrer gesehen. wenn ich den touchscreen berühre, bewegt sich der cursor, aber gleichzeitig bekomme ichWie zu lösen "BUG: Scheduling während atomic: swapper/0x00000103/0, CPU # 0"? im TSC2007 Treiber?
BUG: scheduling while atomic: swapper /0x00000103/0, CPU#0
warning und embedded Linux wird abgestürzt. Es gibt 2 Dateien, die ich geändert und auf http://www.muhendislikhizmeti.com/touchscreen.zip hochgeladen habe. Einer ist mit Timer, der andere nicht. Es gibt auf jeden Fall diesen Fehler.
Ich habe eine Lösung im Web gefunden, die ich Arbeitswarteschlange verwenden und mit Schedule_work() API aufrufen muss. aber sie sind jetzt Unschärfe für mich. Hat jemand eine Idee, wie man dieses Problem löst und kann mir einen Rat geben, wo ich anfangen soll, Arbeitswarteschlange zu verwenden.
nicht genau genug: wie caf sagte, dürfen die Schlösser nicht schlafen. Nur Spinlock qualifiziert sich dafür. Mutex-Sperre kann nicht verwendet werden (mir nicht sicher?), als wenn Mutex-Sperre beginnt zu warten, kann die CPU zu anderen Prozessor geplant werden (weil innerhalb Mutex_lock() ist ein "might_sleep()" Funktionsaufruf, der freiwillig führen kann Neuterminierung - weil cond_resched() aufgerufen wird, obwohl Sie das Vorbelegungs-Flag auf off gesetzt haben (was zu einem anderen Fehler führen kann?), da eine freiwillige Planung durchgeführt wird, wenn das Vorkaufs-Flag aktiviert ist? –