Einführung in RMOS3
2.2 Leistungsmerkmale von RMOS3
Interrupt-Behandlung in 4 Betriebszuständen
Abbildung "Betriebszustände von Echtzeit-Interrupts" verdeutlicht die zur Verfügung
stehenden Betriebszustände bei der Interrupt-Behandlung.
DI-Zustand
I-Zustand
S-Zustand
A-Zustand
Zustandsübergänge werden durch die systeminternen Routinen
x_xel
SVC-Aufrufe während der Interrupt-Behandlung
SVCs können auch im I- und S-Zustand aufgerufen werden. Dabei ist folgendes zu
beachten:
Die aufgerufenen SVCs dürfen nicht zum Zustand WARTEND (Blocked) führen, d.h. Warten
auf eine Botschaft oder das Testen und Setzen eines Semaphors sind nicht erlaubt. Bei
einer SVC-Exception wird als Task-ID 0 ausgegeben, wenn der SVC aus einem Interrupt-
Handler aufgerufen worden ist.
Im I-Zustand ist zu beachten, dass ein SVC erst nach Beendigung des I-Zustandes
ausgeführt wird. D.h. das Ergebnis eines SVCs steht nicht zur Verfügung. Es sollten
demnach nur SVCs verwendet werden, die dem Betriebssystem etwas mitteilen, wie Task
starten, Flag setzen, Semaphor zurücksetzen. Weiterhin dürfen auf dem Stack nur die
Parameter des SVCs liegen. Es ist also nicht möglich, eine Botschaft am Stack anzulegen
und den Zeiger auf diese Botschaft zu verschicken. Der SVC
Zustand nicht erlaubt.
Im S-Zustand ist der SVC
24
Disabled Interrupt Zustand alle Interrupts sind gesperrt.
Interrupt Zustand
System Zustand
Application Zustand
automatisch ausgeführt.
RmIO
Interrupts, die eine niedrigere Priorität als der
momentan abgearbeitete haben, sind gesperrt.
SVCs können aufgerufen werden.
alle Interrupts sind freigegeben und das
Absetzen nicht blockierender
Betriebssystemaufrufe ist möglich.
alle Interrupts sind freigegeben,
Betriebssystemaufrufe können abgesetzt
werden.
nur ohne Warten erlaubt.
,
x_elipse
x_systate
zum Treiberaufruf ist im I-
RmIO
RMOS3 V3.50 Benutzerhandbuch
Bedienhandbuch, 07/2012, A5E03692290-01
und