AUTOSAR_CP_SWS_OS
FIG-9de6ecbf09a46b82
970 × 541 px
5 Release(s)
Figure 7.4: States of an implicit synchronized ScheduleTable
SHA-256 Inhalts-Fingerabdruck:
9de6ecbf09a46b8240e988d5a09e877d9fe86f557bbce2d1b76e6c62f10144e8
✦
KI-generierte Bildanalyse & technische Beschreibung
Modell: gemini-3.8-flash (via agy) · Rezept figure-description@2 · erstellt am 2026-10-07
1. Diagrammtyp & Architektur-Kontext
- Klassifikation: UML-Zustandsdiagramm (State Machine).
- Architektur-Kontext: AUTOSAR Classic Platform OS (
AUTOSAR_CP_SWS_OS), Bereich Task- und Ablaufsteuerung. - Funktionaler Zweck: Modellierung des vereinfachten Zustandsautomaten einer implizit synchronisierten Ablaufverfolgungstabelle (
ScheduleTable). Bei impliziter Synchronisation wird die Schedule Table durch einen Zähler getrieben, der direkt an eine globale, externe Zeitbasis (z. B. FlexRay- oder Ethernet-Buszyklus) gekoppelt ist. Da der Counter per Definition synchron läuft, entfallen Zwischenzustände für Synchronisationsberechnung (SCHEDULETABLE_WAITING) sowie asynchronen Freilauf (SCHEDULETABLE_RUNNING).
2. Komponenten, Entitäten & Schnittstellen
- Entität / Objekt: AUTOSAR OS Schedule Table (
ScheduleTableType) mit KonfigurationsparameterOsScheduleTableSyncStrategy = IMPLICIT. - Zustände (
ScheduleTableStatusType):SCHEDULETABLE_STOPPED: Tabelle ist inaktiv und nicht im Scheduling-Zyklus eingehängt.SCHEDULETABLE_NEXT: Tabelle ist als Folge-Tabelle (ScheduleTableID_To) überNextScheduleTable()vorgemerkt und wartet auf das Periodenende der aktiven Tabelle.SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS: Tabelle läuft aktiv und wickelt ihre Expiry Points synchron zur Zählerbasis ab.
- Schnittstellen / OS-APIs:
StatusType StartScheduleTableAbs(ScheduleTableType ScheduleTableID, TickType Start): Absoluter Startbefehl auf Zählerwert.StatusType StopScheduleTable(ScheduleTableType ScheduleTableID): Unmittelbares Stoppen der Ausführung bzw. Entkoppeln der Nachfolger-Reservierung.StatusType NextScheduleTable(ScheduleTableType ScheduleTableID_From, ScheduleTableType ScheduleTableID_To): Vormerkung als nahtloser Nachfolger.- Statusabfrage (auslesend):
StatusType GetScheduleTableStatus(ScheduleTableType ScheduleTableID, ScheduleTableStatusRefType ScheduleStatus).
3. Dynamisches Verhalten & Sequenzablauf
- Direkter Startpfad:
- Trigger: Aufruf von
StartScheduleTableAbs(ScheduleTableID, Start)im ZustandSCHEDULETABLE_STOPPED. - Folge: Direkter Zustandsübergang nach
SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS. Der erste Expiry Point wird synchron beim Erreichen des absoluten ZählerwertsStartausgelöst.
- Trigger: Aufruf von
- Verketteter Startpfad (Schedule-Table-Wechsel):
- Trigger 1:
NextScheduleTable(ScheduleTableID_From, ScheduleTableID_To)wechseltScheduleTableID_TovonSCHEDULETABLE_STOPPEDnachSCHEDULETABLE_NEXT. - Trigger 2 (Autonomes OS-Event):
„previous“ ScheduleTable ends– Beim finalen Expiry Point der Vorgängertabelle übernimmt die Folgetabelle unterbrechungsfrei zum Tick 0 und wechselt atomar inSCHEDULETABLE_RUNNING_AND_SYNCHRONOUS.
- Trigger 1:
- Abbruch- und Stopp-Pfade:
StopScheduleTable()ausSCHEDULETABLE_RUNNING_AND_SYNCHRONOUSführt unmittelbar nachSCHEDULETABLE_STOPPED.StopScheduleTable()ausSCHEDULETABLE_NEXTderegistriert die Folgetabelle und führt zurück nachSCHEDULETABLE_STOPPED.
- Fehlerbehandlung:
- Fehlerhafte Trigger (z. B. erneutes
StartScheduleTableAbs()auf einer nicht gestoppten Tabelle) verwerfen den Zustandswechsel und liefernE_OS_STATE(bzw. lösen bei konfiguriertem ErrorHook / Extended Status entsprechende OS-Fehlerbehandlungen aus).
- Fehlerhafte Trigger (z. B. erneutes
4. Normative Relevanz & Entwickler-Hinweise
- API-Restriktionen:
- Der Start über
StartScheduleTableRel()oderStartScheduleTableSynchron()ist für implizit synchronisierte Tabellen nicht zulässig; es darf ausschließlichStartScheduleTableAbs()verwendet werden. - Die APIs
SyncScheduleTable()undSetScheduleTableAsync()(explizite Synchronisationsmanipulation via Deviation/Adjustment) sind semantisch ungültig und führen zum FehlercodeE_OS_IDbzw.E_OS_STATE.
- Der Start über
- Counter-Anbindung:
- Die Tabelle muss an einen Counter gebunden sein (
OsScheduleTableCounterRef), dessen Zählperiode exakt der Länge der Schedule Table (oder einem ganzzahligen Vielfachen/Teiler) entspricht.
- Die Tabelle muss an einen Counter gebunden sein (
- Konfigurationsanforderung (
OsScheduleTable):OsScheduleTableSyncStrategymuss zwingend aufIMPLICITgesetzt sein.- Entwickler müssen sicherstellen, dass die globale Zeitbasis (z. B. Bus-Synchronisation via FrIf oder EthTSyn) vor dem Aufruf von
StartScheduleTableAbs()arretiert ist, da das OS selbst keine Driftkorrekturen an der Tabelle durchführt.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.