Herunterladen Inhalt Inhalt Diese Seite drucken

Bild; Kommunikation Über Ereignisflags - Siemens Rmos3 Bedienungsanleitung

Echtzeit-betriebssystem rmos3 rmos3 v3.50 benutzerhandbuch
Inhaltsverzeichnis
Betriebssystem-Eigenschaften von RMOS3
8.4 Taskkommunikation, -koordination, -synchronisierung
Jede Task kann sowohl auf alle globalen Flaggruppen u.a. über die SVCs
RmGetFlag
RmSetLocalFlag
RMOS3 besitzt folgende SVCs für Operationen mit Flags:
● Ereignis–Flag setzen (
● Flag nach Ablauf eines Zeitintervalls setzen (
● Ereignis–Flag rücksetzen (
● Ereignis–Flag testen (
Typischerweise wird ein Ereignisflag durch eine Task gesetzt, wenn eine Bedingung erfüllt
oder durch einen Systemprozess beeinflusst wurde, wenn ein Ereignis (Interrupt)
eingetroffen ist. Ein Flag entspricht dabei einer binären Nachricht mit vordefinierter
Bedeutung, die durch die Applikation festgelegt wird. Flags bieten eine elegante und
effiziente Form für den Austausch von binären Nachrichten. Die SVCs werden allerdings
nicht in einer Warteschlange gespeichert. Ein SVC
wirkungslos, d.h. er wird vom Betriebssystem nicht gespeichert bis das Flag wieder
zurückgesetzt ist. Die Kommunikation zwischen Tasks erfolgt immer über zwei SVCs. Einen
aktiven, den Zustand des Flags beeinflussenden (
und einen reagierenden SVC (
In nachfolgender Abbildung erzeugt Task 1 eine globale Flaggruppe, die über die FLAG-ID 1
angesprochen werden kann. Task 3 wartet auf das Setzen der Ereignisflags 8, 14 und 28
der Flaggruppe. Task 2 wartet auf Eintreffen des Flags 2.

Bild 8-14

112
(Flag-ID ungleich Null) als auch auf alle lokalen Flaggruppen über die SVCs
bzw.
RmGetLocalFlag
RmSetFlag, RmSetLocalFlag
RmGetFlag
Flag erfolgen. Während des Wartens ist die Task dann im Zustand WARTEND (passives
Warten). Das Warten auf das Flag kann für eine gewisse Zeit limitiert werden. Bei der
Rückkehr aus dem Warten auf ein Flag muss also geprüft werden, ob das Flag gesetzt ist
oder die Wartezeit abgelaufen ist.
Kommunikation über Ereignisflags
(über die entsprechende Task-ID) zugreifen.
RmSetFlagDelayed
RmResetFlag, RmResetLocalFlag
). Das Testen des Ereignisflags kann mit Warten auf das
RmSetFlag
RmSetFlag
).
RmGetFlag
RmSetFlag
)
)
)
auf ein gesetztes Flag ist
,
,
RmResetFlag
RmSetFlagDelayed
RMOS3 V3.50 Benutzerhandbuch
Bedienhandbuch, 07/2012, A5E03692290-01
bzw.
)
Inhaltsverzeichnis
loading

Inhaltsverzeichnis