Herunterladen Inhalt Inhalt Diese Seite drucken

Interrupt-Bearbeitung Unter Rmos3 - Siemens RMOS3 Bedienungsanleitung

Echtzeit-betriebssystem rmos3 rmos3 v3.50 benutzerhandbuch
Inhaltsverzeichnis

Werbung

Betriebssystem-Eigenschaften von RMOS3

8.3 Interrupt-Bearbeitung unter RMOS3

8.3
Interrupt-Bearbeitung unter RMOS3
Interrupts
Interrupts dienen zur Synchronisation von Treiberzuständen und der Hardware, d.h. die
Hardware zeigt der Software einen bestimmten Zustand an (z. B., dass ein Zeichen
eingelesen werden kann). Jeder Treiber, der über Interrupts synchronisiert wird, besitzt
mindestens einen, eventuell auch mehrere Einsprünge, die von einer Interruptroutine aus
angesprungen werden. Mehrere verschiedene Einsprünge sind z.B. notwendig, wenn der
Treiber mehrere Controller unterschiedlichen Typs bedient (z.B. Timer– und V.24–
Controller). Vor der Interruptbehandlung durch den Treiber wird vom Nukleus das EBX-
Register mit der Adresse des UCB geladen.
Interrupts werden bearbeitet, ohne dass die RECHNENDe Task in den Zustand BEREIT
verdrängt wird. Es werden nur die notwendigen CPU-Register auf dem Stack der
RECHNENDen Task gerettet. Die RECHNENDe Task wird nach der Rückkehr aus der
Interruptroutine fortgesetzt. Für umfangreiche Behandlungen kann auch die augenblicklich
RECHNENDe Task verdrängt werden und der Interrupthandler in einen Systemprozess
überführt werden.
Hinweis
Segmentierte Programme, die Interrupts verwenden, müssen auf PL0 ausgeführt werden.
Erwartete und unerwartete Interrupts
Interrupts werden abhängig vom Treiber– oder Gerätezustand als "erwartet" oder
"unerwartet" unterschieden.
Erwartete Interrupts signalisieren z.B. die Beendigung eines Bearbeitungsschrittes durch die
Hardware und leiten den nächsten Bearbeitungsschritt oder einen Zustandswechsel beim
Treiber ein.
Ein unerwarteter Interrupt (z.B. weil keine Anforderung für dieses Gerät vorliegt) wird gemäß
den Erfordernissen des Geräts bearbeitet, das den Interrupt verursacht hat. Ergibt der
unerwartete Interrupt keinen Sinn für das Gerät, könnte ein Fehler aufgetreten sein, und der
Treiber muss darauf reagieren (z.B. den Interrupt einfach ignorieren). Ist ein unerwarteter
Interrupt dagegen sinnvoll, dann kann eine typische Reaktionen darin bestehen, ein Zeichen
in einem internen Puffer zu speichern oder eine Task zur Bearbeitung des Ereignisses zu
starten.
92
RMOS3 V3.50 Benutzerhandbuch
Bedienhandbuch, 07/2012, A5E03692290-01

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis