Archiv verlassen und diese Seite im Standarddesign anzeigen : Interrupt am Parallelport mit Parapin
Halle zusammen!
Habe mir mit Parapin ein nette Anwenung geschrieben, mit der ich den Parallelport unter Linux polle. Klappt auch alles sehr gut. Problem ist leider nur die hohe CPU Auslastung! Nun würde ich lieber per Interrupt melden, daß Daten auf dem Bus anliegen, die zu holen sind. Nur weiß ich leider gar nicht, wie das gehen mag. Hat da irgendwer Ahnung von, wie das ganze klappen kann?!?!?? :confused:
Scholli
Schaue im Buch Linux Device Drivers (http://www.xml.com/ldd/chapter/book/index.html) das Kapitel 9 an.
Des Weiteren würde ich dir noch den The Linux Kernel Module Programming Guide (http://www.tldp.org/LDP/lkmpg/2.6/html/index.html) wärmstens empfehlen.
Greets
f0rtex
Dann werde ich mir das mal reinziehen. Von O'Reilly habe ich auch gestern noch auf deutsch gefunden ;-) Liest sich dann schon was leichter.... *fg*
Wäre nur halt interessant gewesen mit Parapin, da dort auch schon einge Funktionen deklariert sind, die womöglich schon mit dem Interrupt arbeiten.
Danke schon mal vorab... gehe jetzt was lesen.... :D
Bin echt zu doof....
Um die Interrupts ansprechen zu können muss ich doch in den Kernel Modus. Also muss ich ein Modul einbinden. Das habe ich dann auch mal bei dem Parapin gemacht. Aber wie spricht man jetzt die Funktionen des Treibers an!? Mit open("/dev/kparapin") komme ich alleine ja nicht weiter....
Hat nicht irgendwer Ahnung davon?!?!?
Also ich kenne Parapin nicht. Um IRQ gebrauchen zu können, musst du selber ein Kernel-Modul schreiben. (Details zum Aufbau findest du im Kernel Module Programming Giude inkl. das Schreibein eines IRQ-Handlers (http://www.tldp.org/LDP/lkmpg/2.6/html/x1258.html)).
Wenn du wissen willst welche Funktionen dir im Kernel-Space zur Verfügung stehen, kannst du ein cat /proc/kallsyms machen. (unter Kernel 2.4 ein cat /proc/ksyms)[1]
Greets
f0rtex
Edit:
[1] Siehe dazu http://www.tldp.org/LDP/lkmpg/2.6/html/x466.html
3.1.4. Name Space
Das klingt irgendwie immer so leicht... :-( Ich habe mich heute morgen mal wieder dran gesetzt. Allein die Kompilierung der Beispieldatei aus dem Gerätetreiberbuch ließ ich nicht durchführen. Immer Fehlermeldugen. Habe es mit dem 2.4.25 2.4.26 und dem 2.6.6 ausprobiert. Die enstprechenden Sourcen natürlich angepaßt!
Jetzt auf einem zweiten Rechner mit 2.4.20 geht es plötzlich. Oh Mann....
Kann ich denn nicht evtl. auch schon den bestehenden /dev/parport benutzen?!?! request_irq etc. waren ja schon im Kernel vorhanden als Funktion...
Der Interrupt bringt mich nocht um :(
Oder ist es noch anders möglich Prozessorschonend den Parallelport abzufragen!?!?
Danke übrigens für deine Mühen f0rtex
Scholli
JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA!!!!
Ich habe Feuer gemacht!!!!!!!!!!!!!!!!!!!!!!!!
Es klappt!!!! :-) Interrupt oleee!!!! :D
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.