Lowlevel
Lowlevel => Lowlevel-Coding => Thema gestartet von: MrTom3715 am 21. June 2013, 16:14
-
Hallo,
ich habe mal wieder ein Problem...
Ich habe es jetzt geschaft die Tastatur zu aktivieren, aber wenn ich eine Endlosschleife mit einer Abfrage von Port 0x60 programmmiere, entsteht folgender Error:
PFLASH: Possible BUG - Write block confirm
Qemu stürzt einfach ab.
Hier ist mein Log:
http://pastebin.com/EF2F58eQ
Ich kenne mich leider nicht mit dem Auswerten eines QEMU-Logs aus.
Kann mir jemand sagen wo mein Fehler liegen könnte?
An der Schleife liegt es definitiv nicht.
MrTom3715
-
Ohne Code wohl nicht.
-
Welchen Code bräuchtest du denn?
Den von der While-Schleife?
-
Wäre ein Anfang, je mehr Code, desto mehr Kontext, desto besser.
-
Hier mal mein ganzer Code:
-
In tasks_a hast du 60 statt 0x60 geschrieben. Aber der eigentliche Fehler ist, dass du init_multitasking nicht aufrufst.
-
Das ist beabsichtigt.
Ich habe zuerst versucht ohne Multitasking zu arbeiten.
Die Tastatur wird auch erfolgreich gestartet und löst ein Interrupt aus, aber wenn ich eine Taste drücke müsste auf dem Bildschirm erscheinen, dass es einen Interrupt 0x21 gibt. Dieser wird aber nicht ausgelöst.
-
Das ist beabsichtigt.
Ich habe zuerst versucht ohne Multitasking zu arbeiten.
Dann solltest du nicht versuchen in schedule den Task zu wechseln.
-
Diesen Befehl habe ich jetzt schon entfernt.
Leider funktioniert es immer noch nicht. Ich bekomme immernoch keine Interrupts von der Tastatur.
-
Löst das denn wenigstens den Crash?
Du musst bei jedem Tastatur-Interrupt Port 0x60 lesen, damit die Tastatur weitere IRQs sendet.
-
Problem gelößt! :-)
Qemu crasht nicht mehr.
Ich hatte die Port 0x60 Abfrage in der main(), nun habe ich sie in den Interrupt-Handler gesteckt und siehe da: Es funktioniert.