Interrupt Prioritäten

Kalle
Erstie
Erstie
Beiträge: 16
Registriert: 20. Okt 2004 09:49
Kontaktdaten:

Interrupt Prioritäten

Beitrag von Kalle » 14. Dez 2006 14:32

Hi!

Ich feuer jetzt mal ein paar Fragen raus:

Auf dem Datenblatt sind in der Vektortabelle Prioritäten angegeben.
Wie wird diesen nachgekommen? Kümmert sich da allein der Prozessor drum?
Macht es da Sinn, dass Traps (Priorität 2.0) nicht von allgemeinen Interrupts (4.2) unterbrochen werden dürfen?

(nebenbei: Im Datenblatt Version 4d steht bei dem Befehl TRAP unter Funktion src = n + 0x30 - sollte wohl 0x20 sein.)

Können externe Interrupts gleicher Priorität grundsätzlich Kurzschlüsse verursachen, wenn sie "gleichzeitig" kommen, und dann auf dem Datenbus unterschiedliche Vektornummern auflegen, bzw. Das AV#-Signal unterschiedlich treiben?
Muss hier durch prozessorexterne Priorisierung wie einer Daisy-Chain nachgeholfen werden?

Gruss Kalle

Herrzattacke
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 143
Registriert: 20. Nov 2004 16:04

Beitrag von Herrzattacke » 14. Dez 2006 15:02

Auf dem Datenblatt sind in der Vektortabelle Prioritäten angegeben.
Wie wird diesen nachgekommen? Kümmert sich da allein der Prozessor drum?
Macht es da Sinn, dass Traps (Priorität 2.0) nicht von allgemeinen Interrupts (4.2) unterbrochen werden dürfen?
Was in der spalte Priorität steht, wird in der Tat nur im Prozessor verwaltet.
Es wäre ja z.B. recht unpraktisch, wenn ein Buserr von einem externen Interrupt (z.B. Tastatur) unterbrochen werden könnte.
(nebenbei: Im Datenblatt Version 4d steht bei dem Befehl TRAP unter Funktion src = n + 0x30 - sollte wohl 0x20 sein.)
Laut Motorola Datenblatt müsste da tatsächlich src := #n + 32 stehen, d.h. 0x20 wäre dann wohl richtig
Können externe Interrupts gleicher Priorität grundsätzlich Kurzschlüsse verursachen, wenn sie "gleichzeitig" kommen, und dann auf dem Datenbus unterschiedliche Vektornummern auflegen, bzw. Das AV#-Signal unterschiedlich treiben?
Muss hier durch prozessorexterne Priorisierung wie einer Daisy-Chain nachgeholfen werden?
Selbst wenn es keinen kurzen gibt, dann hast du zur Interruptbehandlung nur einen Haufen Müll auf dem Datenbus. Solche Fälle kann man dann einfach mit einer Dasy-Chain lösen (nicht unterbrechbar oder unterbrechbar) oder auch mit einem Interrupt-Controller.
Alle sagten: "Das geht nicht!" Dann kam einer, der wusste das nicht und hat´s gemacht.

Herrzattacke
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 143
Registriert: 20. Nov 2004 16:04

Beitrag von Herrzattacke » 14. Dez 2006 23:11

Außerdem will man ja Traps aus einem Interrupt ausführen können, daher muss deren Priorität auch höher(niedriger 2.0) sein.
Vgl. Übung 6 Freigeben der Interrupts.
Alle sagten: "Das geht nicht!" Dann kam einer, der wusste das nicht und hat´s gemacht.

Benutzeravatar
Rodent Bait
Mausschubser
Mausschubser
Beiträge: 91
Registriert: 26. Apr 2005 14:50
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von Rodent Bait » 15. Dez 2006 09:54

Solche Fälle kann man dann einfach mit einer Dasy-Chain lösen (nicht unterbrechbar oder unterbrechbar)
Aber doch eigentlich nur, wenn die Durchlaufzeit der Daisy-Chain kleiner ist als die Reaktionszeit des Prozessors auf die Interruptanforderung, oder?

Antworten

Zurück zu „Archiv“