Herunterladen Inhalt Inhalt Diese Seite drucken

Interrupt-Bearbeitung Im Apic-Modus; Interrupt-Routing Am Pci-Bus - Siemens Rmos3 Bedienungsanleitung

Echtzeit-betriebssystem rmos3 rmos3 v3.50 benutzerhandbuch
Inhaltsverzeichnis
5. Aus der Interrupt Vektor Tabelle (bzw. Interrupt Descriptor Tabelle) liest die CPU die
6. Am Ende der entsprechenden Interrupt Service Routine (spätestens beim Wechsel vom

Interrupt-Bearbeitung im APIC-Modus

Die Interrupt-Bearbeitung ist ähnlich wie im PIC-Modus, aber wesentlich schneller.
Interrupts am ISA-Bus
Interrupts am ISA-Bus werden auch unter RMOS3 im flankengetriggerten Mode bearbeitet.
Dies bedeutet, dass beim Eintreffen einer negativen Signalflanke am ISA-Bus der Interrrupt
vom Interrupt-Controller erkannt und wie oben beschrieben verarbeitet wird.
In dieser Betriebsart ist es nicht möglich, am selben Interrupt-Eingang mehrere,
unterschiedliche Interruptquellen zu betreiben. Treten innerhalb kurzer Zeit, bevor der PIC
das EOI-Kommando erhalten hat, Interrupts auf, so können die später eintreffenden
Interrupts nicht erkannt werden und gehen verloren.
Interrupts am PCI-Bus
Mit dem PCI-Bus ist der pegelgetriggerte Mode des PICs notwendig geworden, da am PCI-
Bus lediglich vier Interruptleitungen, INTA#, INTB#, INTC# und INTD#, bedient werden
können. Dies erfordert, dass sich am PCI-Bus angeschlossene Baugruppen die
Interruptleitungen "teilen" müssen (shared interrupts). Die Umstellung vom flanken- in den
pegelgetriggerten Mode erfolgt automatisch durch den Shared Interrupt Server von RMOS3.
Beispiel zur Bearbeitung von Interrupts am PCI-Bus:
Lösen zwei unterschiedliche Baugruppen, die denselben Interrupt z.B. INTA# nutzen, kurz
hintereinander die Interruptanforderung an die CPU aus, dann wird zunächst mit dem
zweiten INTA# -Impuls von der CPU die Vektornummer und damit die Interruptroutine
ermittelt. Innerhalb dieser Interruptroutine muss jetzt die Quelle des Interrupts ermittelt
werden. Dies geschieht durch Auslesen der Baugruppen-Register der angeschlossenen
PCI-Baugruppen. Ist die Interruptquelle gefunden, muss die Interruptanforderung der
entsprechenden PCI-Baugruppe zurückgenommen werden. Anschließend gibt die CPU dem
Interrupt-Controller das EOI-Kommando. Damit ist die Interruptbearbeitung der ersten
Baugruppe abgeschlossen.
Allerdings steht noch die Interruptanforderung durch die zweite Baugruppe an. Dadurch
steht sofort wieder das INTR-Signal an und die CPU wird erneut die Vektornummer ermitteln
und in die Interrupt Service Routine verzweigen.
Dieser Mechanismus wird so lange wiederholt, bis keine Interruptanforderungen mehr
vorliegen.

Interrupt-Routing am PCI-Bus

Die PCI-Interrupts INTA#, INTB#, INTC# und INTD# werden in der CPU-PCI-Bridge auf die
Interrupt-Requests IRQx der AT-Architektur abgebildet.
Im APIC-Modus werden die PCI-Interrupts fest den Interrupts IRQ16 bis IRQ19 bzw. IRQ20
bis IRQ23 zugeordnet.
RMOS3 V3.50 Benutzerhandbuch
Bedienhandbuch, 07/2012, A5E03692290-01
Adresse der Interrupt Service Routine und führt diese aus.
I-Zustand in den S-Zustand) muss die CPU dem PIC ein EOI-Kommando (End Of
Interrupt) geben. Dies wird bei RMOS3 mit der Routine "X_ISSUE_EOI" gesteuert und
automatisch ausgeführt.
Betriebssystem-Eigenschaften von RMOS3
8.3 Interrupt-Bearbeitung unter RMOS3
95
Inhaltsverzeichnis
loading

Inhaltsverzeichnis