1
Lowlevel-Coding / IRQ 11 auf Hardware
« am: 23. July 2013, 12:14 »
Hallo Zusammen
Neulich hat mir ein altes Problem von mir wieder einmal viel Ärger und Kopfschmerzen bereitet.
Mein Betriebssystem, das fehlerfrei unter Qemu läuft, funktioniert auf meinem Laptop nicht richtig.
Der Laptop wirft andauernd den IRQ 11. Mit andauernd meine ich, dass sobald ich die Interrupts aktiviere(sti), ich keinen weitern Code ausser Interrupthandler ausführen kann. Dazu foldender Ausschnitt:
Ab dort wird auf meinem Laptop kein Code aus meiner Main funktion mehr ausgeführt. Der Keyboardhandler(und alle meine anderen Handler) funktionieren jedoch einwandfrei.
Unter Qemu werde ich mit Hallos zugespamt was eigentlich auch zu erwarten war.
Nun probierte ich einen dummen Workaround (nämlich den IRQ11 zu maskieren). Nur kommt der IRQ trozdem weiterhin.
Ich bin mir ziemlich sicher, dass mein Code stimmt, ich habe ihn mehrere Male mit dem Wiki überprüft und auch gegoogelt wegen dem IRQ 11.
Auf einem anderen Computer habe ich mein OS noch nicht getestet(aus Faulheit) und momentan kann ich ihn nicht auf einem anderen Computer testen, weil ich in den Ferien bin und nur meinen Laptop dabei habe.
Ich hoffe ihr könnt mir mit diesem Problem helfen
Neulich hat mir ein altes Problem von mir wieder einmal viel Ärger und Kopfschmerzen bereitet.
Mein Betriebssystem, das fehlerfrei unter Qemu läuft, funktioniert auf meinem Laptop nicht richtig.
Der Laptop wirft andauernd den IRQ 11. Mit andauernd meine ich, dass sobald ich die Interrupts aktiviere(sti), ich keinen weitern Code ausser Interrupthandler ausführen kann. Dazu foldender Ausschnitt:
Code: [Auswählen]
init_idt();
while(1)
{
debug_kprintf( (str)"Hallo");
}
Direkt am Ende von init_idt setze ich das Interruptflag.Ab dort wird auf meinem Laptop kein Code aus meiner Main funktion mehr ausgeführt. Der Keyboardhandler(und alle meine anderen Handler) funktionieren jedoch einwandfrei.
Unter Qemu werde ich mit Hallos zugespamt was eigentlich auch zu erwarten war.
Nun probierte ich einen dummen Workaround (nämlich den IRQ11 zu maskieren). Nur kommt der IRQ trozdem weiterhin.
Ich bin mir ziemlich sicher, dass mein Code stimmt, ich habe ihn mehrere Male mit dem Wiki überprüft und auch gegoogelt wegen dem IRQ 11.
Auf einem anderen Computer habe ich mein OS noch nicht getestet(aus Faulheit) und momentan kann ich ihn nicht auf einem anderen Computer testen, weil ich in den Ferien bin und nur meinen Laptop dabei habe.
Ich hoffe ihr könnt mir mit diesem Problem helfen