´Hallo zusammen,
Ich habe ein Problem bezüglich Interrupts/Exceptions und bin leider trotz sorgfäliger Analyse noch nicht dahinter gekommen wo genau mein Fehler liegt.
Ich habe eine Datei "idt.c" (siehe Anhang) in der (vlt noch etwas unsauber) meine Funktionen zum Laden und zur Initialisierung der IDT und die Funktionen zum Interrupthandling liegen.
Außerdem habe ich eine Datei "isr.S" (ebenfalls im Anhang) in der in Assemblercode die ISR's liegen.
Mein Problem ist jetzt dass ich nachdem ich in der "init.c" die GDT und die IDT initialisiert, sowie den PIC konfiguriert habe versuche testweise mit
Die einzige Exception die ich fehlerfrei herbeiführen kann ist Nr. 0, dabei wird dann mein Handler aufgerufen und die Exception bearbeitet.
Schon mal Vielen Dank im Vorraus
s137
P.S. Einen Fehler der GDT kann ich ausschließen, diese habe ich schon seperat getetet.
Ich habe ein Problem bezüglich Interrupts/Exceptions und bin leider trotz sorgfäliger Analyse noch nicht dahinter gekommen wo genau mein Fehler liegt.
Ich habe eine Datei "idt.c" (siehe Anhang) in der (vlt noch etwas unsauber) meine Funktionen zum Laden und zur Initialisierung der IDT und die Funktionen zum Interrupthandling liegen.
Außerdem habe ich eine Datei "isr.S" (ebenfalls im Anhang) in der in Assemblercode die ISR's liegen.
Mein Problem ist jetzt dass ich nachdem ich in der "init.c" die GDT und die IDT initialisiert, sowie den PIC konfiguriert habe versuche testweise mit
Code: [Auswählen]
asm volatile("int $0x01"); die Exception Nr. 1 herbeizuführen, jedoch wird meine isr zur behandlung dabei nicht aufgerufen, die Exception also nicht behandelt -> Triple Fault -> Neustart des Rechners..Die einzige Exception die ich fehlerfrei herbeiführen kann ist Nr. 0, dabei wird dann mein Handler aufgerufen und die Exception bearbeitet.
Schon mal Vielen Dank im Vorraus
s137
P.S. Einen Fehler der GDT kann ich ausschließen, diese habe ich schon seperat getetet.

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken

Gespeichert
Es funktioniert jetzt einwandfrei^^
