Lowlevel
Lowlevel => Lowlevel-Coding => Thema gestartet von: nooooooooos am 13. March 2006, 19:48
-
Im PM Tutorial von der FH Zwickau steht:
Aus Tabelle 4.1 ist ersichtlich, daß die Hardware-Interrupts 0..7 die Interrupts 8..15 auslösen. Diese Interrupts sind jedoch bereits von Intel als Protected Mode Exceptions reserviert worden. Würde man ohne eine Änderung an dieser Einstellung, Interrupts erlauben, so würden beispielsweise 18,2 mal in der Sekunde Double-Fault Exceptions ausgelöst werden (Hardware-Interrupt 0 löst standardmäßig Interrupt 8 aus).
Darum hatte ich bis heute einen Code im Kernel der den Controller umprogrammiert. Als, ich ihn heute dann auskommentiert habe, hab ich bemerkt, dass trotztem nicht 18,2 mal in der Sekunde ein Double-Fault Exception ausgelöst wird.
Ist jetzt dieser Code nötig oder nicht ????
Gruss
Noooooooooos
-
Na, wenn auf dem Double Fault ein anderer ISR liegt hast du das evtl. so gar nicht bemerkt?
-
Hardware Interrupt 1 ist der Timer.
Das Tutorial schlägt vor, die Hardware Interrupts auf die Interrupts 20h - 2Fh umzubiegen. Somit wird 18.2 mal in der Sekunde int 0x20 aufgerufen.
Wenn nun aber dieser Code (der die Hardware Interrupts umbiegt) auskommentiert wird, wird der Timer trotzdem noch aufgerufen. (Da ist nämlich das Multitasking)
Gruss
Noooooooooos
-
das ist ja richtig.
aber für einen doublefault hast du ja möglicherweise in der idt ein interrupt gate, das code aufruft, der dich nicht erkennen lässt, dass ein doublefault ausgelöst wurde.
also könnte es sein, dass der double fault 18,2 mal pro sekunde aufgerufen wird, aber du nichts davon mitbekommst.
-
ne, meine Interrupt-Routine für alle Interrupts ausser dem Timer beendet das Multitasking und gibt die Nummer des Fehlers auf dem Bildschirm aus.
Ich würde es doch bemerken, wenn das Multitasking plötzlich nicht mehr funktionieren würde
Also meint ihr, der Code sei nötig???? (Keine Gegenstimmen?)
Gruss
Noooooooooos
-
ist das so schwer zu verstehen :?:
Der Code ist nötig :!: