DEENESPTFRRUARHIKOZHNL
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 Konfigurationsparameter OsScheduleTableSyncStrategy = 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) über NextScheduleTable() 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 Zustand SCHEDULETABLE_STOPPED.
    • Folge: Direkter Zustandsübergang nach SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS. Der erste Expiry Point wird synchron beim Erreichen des absoluten Zählerwerts Start ausgelöst.
  • Verketteter Startpfad (Schedule-Table-Wechsel):
    • Trigger 1: NextScheduleTable(ScheduleTableID_From, ScheduleTableID_To) wechselt ScheduleTableID_To von SCHEDULETABLE_STOPPED nach SCHEDULETABLE_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 in SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS.
  • Abbruch- und Stopp-Pfade:
    • StopScheduleTable() aus SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS führt unmittelbar nach SCHEDULETABLE_STOPPED.
    • StopScheduleTable() aus SCHEDULETABLE_NEXT deregistriert die Folgetabelle und führt zurück nach SCHEDULETABLE_STOPPED.
  • Fehlerbehandlung:
    • Fehlerhafte Trigger (z. B. erneutes StartScheduleTableAbs() auf einer nicht gestoppten Tabelle) verwerfen den Zustandswechsel und liefern E_OS_STATE (bzw. lösen bei konfiguriertem ErrorHook / Extended Status entsprechende OS-Fehlerbehandlungen aus).

4. Normative Relevanz & Entwickler-Hinweise

  • API-Restriktionen:
    • Der Start über StartScheduleTableRel() oder StartScheduleTableSynchron() ist für implizit synchronisierte Tabellen nicht zulässig; es darf ausschließlich StartScheduleTableAbs() verwendet werden.
    • Die APIs SyncScheduleTable() und SetScheduleTableAsync() (explizite Synchronisationsmanipulation via Deviation/Adjustment) sind semantisch ungültig und führen zum Fehlercode E_OS_ID bzw. E_OS_STATE.
  • 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.
  • Konfigurationsanforderung (OsScheduleTable):
    • OsScheduleTableSyncStrategy muss zwingend auf IMPLICIT gesetzt 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.

Vorkommen in AUTOSAR-Releases (5)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R21-11 AUTOSAR_SWS_OS S. 47 7.4 Figure 7.4: States of an implicit synchronized ScheduleTable
R22-11 AUTOSAR_SWS_OS S. 51 7.4 Figure 7.4: States of an implicit synchronized ScheduleTable
R23-11 AUTOSAR_CP_SWS_OS S. 46 7.4 Figure 7.4: States of an implicit synchronized ScheduleTable
R24-11 AUTOSAR_CP_SWS_OS S. 47 7.4 Figure 7.4: States of an implicit synchronized ScheduleTable
R25-11 AUTOSAR_CP_SWS_OS S. 48 7.4 Figure 7.4: States of an implicit synchronized ScheduleTable