Seite 1 von 1

Frage zur Interrupt-Priorität

Verfasst: 24. Nov 2006 10:48
von Rodent Bait
Hallo,

in der Musterlösung zu Aufgabe 5.5 steht, dass, falls Register zum Zwischenspeichern verwendet werden, Semaphore oder eine Lösung über die Interruptmaske benötigt werden.

Nun haben doch beide Interrupts, Autovector 2+3, dieselbe Priorität, nämlich 4.2. Können sie dann nicht sowieso nur von Interrupts höherer Priorität unterbrochen werden, d.h., sie können sich nicht gegenseitig unterbrechen, und man bräuchte auch keine zusätzliche Logik, um das abzufangen?

Viele Grüße,
Heiko.

Verfasst: 26. Nov 2006 11:02
von patriquito
Hallo,

Die Autovector Interrupts sind zwar in der Tabelle alle mit der Priorität 4.2 angegeben, haben aber eigentlich die Prioritäten 4.2.1 (Level 7) bis 4.2.7 (Level 1). D. h. ein Interrupt Level 3 kann einen Interrupt Level 2 unterbrechen, umgekehrt nicht. Die CPU erkennt anhand der Interruptmaske im Statusregister auf welcher Ebene sie sich befindet und gibt anhand dieser Information einem Autovector Interrupt statt oder nicht.

Hoffe, das hilft weiter,
Patrick