Betriebssystem-Eigenschaften von RMOS3
8.3 Interrupt-Bearbeitung unter RMOS3
Alle anderen Systemprozesse (FIFO) und Tasks sind blockiert
Die Bearbeitungszeit im S–Zustand ist nicht unbegrenzt, da alle anderen Systemprozesse
(FIFO–Verarbeitung) und alle Applikationstasks blockiert sind. Die Größe der Warteschlange
von Systemprozessen ist durch die Anzahl der maximal verfügbaren SRB–Blöcke begrenzt
(konfigurierbar). Wenn während der Auslösung des Interrupts eine Task aktiv war, wird diese
beim Übergang vom I– in den S–Zustand vom Zustand RECHNEND in den Zustand BEREIT
versetzt, da in jedem Fall zuerst der Systemprozess bearbeitet werden muss.
Die Systemprozesse können lokale Variablen (RMOS3–Systemstack), Systemvariablen und
eine Reihe von Unterprogrammaufrufen des Nukleus benutzen, um die Bearbeitung von
Ereignissen abzuschließen. Dabei dienen die Systemvariablen (
Parameter für diese Unterprogrammaufrufe.
Mit Hilfe der Unterprogrammaufrufe können Ereignisflags beeinflusst, Nachrichten
verschickt, Applikationstasks gestartet und Speicher aus einem Speicherpool allokiert
werden. Vor der Beendigung des Systemprozesses muss der Stack wieder bereinigt sein.
SVC-Aufrufe im S-Zustand
Im S-Zustand können SVCs aufgerufen werden, wenn Folgendes beachtet wird:
● Die aufgerufenen SVCs dürfen nicht zum Zustand WARTEND (Blocked) führen, d.h.
● Bei einer SVC-Exception wird als Task-ID 0 ausgegeben, wenn der SVC aus einem
● Im S-Zustand ist der SVC
SVC RmSetIntISHandler
Der SVC
Diese Interruptroutine kann auch sofort nach Eintreffen eines Interrupts im S-State
ausgeführt werden, wenn der SVC ohne Aufruf einer Interruptroutine im I-Zustand
aufgerufen wurde.
102
Warten auf eine Botschaft oder Testen und Setzen eines Semaphor (
sind nicht erlaubt.
Interrupt-Handler aufgerufen worden ist.
RmSetIntISHandler
nur ohne Warten erlaubt.
RmIO
unterstützt die Einbindung einer Interruptroutine im S-Zustand.
,
etc.) als
XGEND
XUCB
RmGetBinSemaphore)
RMOS3 V3.50 Benutzerhandbuch
Bedienhandbuch, 07/2012, A5E03692290-01