IRQ1 funzt irgendwie net
-
hallo erstmal,
ich befinde mich im 32 protected-mode, habe eine schöne GDT und eine IDT welche 256 einträge lang ist. jeder dieser einträge zeigt auf ein und die selbe ISR, somit sollte ich also in der lage sein alle interrupts, exception, irq abzufangen
als nächstes aktiviere ich den IRQ1:
outportb(0x21, ~0x03); outportb(0xA1, ~0x00);
und schalte dann die hardware interrupts an
sti
nun sollte doch eigentlich jedes mal wenn ich eine taste auf der tastetur betätige meine Interupt Service Routine aufgerufen werden oder? und diese muss dann via outportb(0x20, 0x20); den interrupt wieder "reseten"... richtig?
aber komischerweiße wird kein interrupt ausgelöst
habt ihr ne idee was ich falsch gemacht oder vergessen habe?
MFG Marcl
-
Hi.
Ein paar mehr Informationen waeren nicht schlecht.
Lassen sich Interrupts ueber die int-Instruktion aufrufen?
Funktionieren Exceptions?==>Wenn's bei diesen Punkten schon hapert, brauchst du dir um den PIC noch keine Gedanken zu machen.
Ansonsten musst du den PIC nochmal komplett neu initialisieren.
Dh. ICW1-4 neu senden (Sonst wuerde schliesslich auch bei jedem IRQ 0 eine exception ausgeloest werden).
Weitere Infos dazu in den FAQ.BTW: Was ist mit IRQ 0 (PIT - den aktivierst du schliesslich auch)? Ist der angehalten oder haengt da ein wie auch immer funktionierender handler dran?
-
hi nochmal,
ich habe meinen fehler gefunden... ich bin aus meinen interrupt service routinen immmer mit "reti" ausgetreten was ja aber gar kein assembler befehl ist... keine ahnung wieso ers ohne fehler assembliert hat... richtig heißt es natürlich "iret"...
so'n müll *g*
danke trotzdem
MFG Marcl
-
Ok, waere nur irgendwie hilfreich gewesen, wenn du von selbst deine Resultate gepostet und somit das Thema fuer erledigt erklaert haettest.