DEENESPTFRRUARHIKOZHNL
AUTOSAR_CP_EXP_ApplicationLevelErrorHandling FIG-7be3299ee46ac2a8 932 × 558 px 2 Release(s)

Figure 7.2: OS-Application State Machine.

SHA-256 Inhalts-Fingerabdruck: 7be3299ee46ac2a87f6113e8ee8cefa6d6d21ca808d4c9a37e5e9459d7def0fe
✦ 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 Diagram, Kennzeichnung stm OS Application State Machine).
  • Technischer Zweck: Spezifikation des Lebenszyklus und der Schutz- bzw. Wiederanlaufzustände einer AUTOSAR OS-Application (gemäß AUTOSAR OS SWS, Skalierbarkeitsklassen SC3/SC4 mit Speicherschutz/Timing Protection).
  • Funktionale Einordnung: Dient der Fehlereindämmung (Fault Containment) und kontrollierten Wiederherstellung fehlerhafter Software-Partitionen auf Applikationsebene (AUTOSAR_CP_EXP_ApplicationLevelErrorHandling). Verhindert unkontrollierte Nebeneffekte auf intakte Partitionen bei Speicher- oder Laufzeitverletzungen.

2. Komponenten, Entitäten & Schnittstellen

  • Zustände (ApplicationStateType):
    • APPLICATION_ACCESSIBLE: Normalbetrieb. Alle Tasks, ISRs, Alarme und Hooks der OS-Application sind aktivierbar; inter-partitiver Zugriff (Cross-Application) über RTE/OS ist uneingeschränkt möglich.
    • APPLICATION_RESTARTING: Notbetrieb/Reinitialisierung. Nur die konfigurierte OsRestartTask führt Code aus. Alle übrigen Tasks, ISRs und Alarme der betroffenen Partition sind terminiert. Externe Zugriffe anderer Partitionen sind gesperrt.
    • APPLICATION_TERMINATED: Endzustand der OS-Application. Sämtliche Entitäten sind gestoppt; Fremdzugriffe dauerhaft blockiert. Verlassen nur über ECU-Neustart bzw. OS-Reboot (ShutdownOS() / StartOS()).
  • Akteure & Entitäten:
    • OS-Application: Partitionierungscontainer für OS-Objekte (Tasks, ISRs, Counter, Alarme, Schedule Tables).
    • ProtectionHook: Systemweiter Hook zur Auswertung von Speicherschutz-, Stack- oder Zeitbudgetverletzungen.
    • OsRestartTask: Exklusive Task zur Wiederherstellung konsistenter Applikationszustände.
  • Schnittstellen & Service-APIs:
    • TerminateApplication(ApplicationType Application, RestartTypeType RestartOption): OS-Service zum gezielten Beenden/Wiederanlaufen (RESTART vs. NO_RESTART).
    • AllowAccess(void) / AllowAccess(AppID): OS-Service zur Freigabe der Partition nach erfolgreicher Reinitialisierung.
    • StartOS(): Systeminitiierung aus dem Pseudo-Startzustand (Initial).

3. Dynamisches Verhalten & Sequenzablauf

  1. Initialisierung:
    • Übergang von Initial nach APPLICATION_ACCESSIBLE synchron während des Boot-Vorgangs via StartOS(), sobald interne OS-Strukturen initialisiert sind.
  2. Fehlerbehandlung / Reinitialisierungspfad:
    • Trigger APPLICATION_ACCESSIBLE → APPLICATION_RESTARTING:
      • Asynchron/Exception: ProtectionHook() liefert PRO_TERMINATEAPPL_RESTART.
      • Synchron: Expliziter API-Aufruf TerminateApplication(AppID, RESTART).
    • Ablauf im OS: Abbruch aller laufenden Tasks/ISRs der Partition, Löschen anstehender Aktivierungen, Terminierung laufender Alarme, Aktivierung der OsRestartTask.
    • Trigger APPLICATION_RESTARTING → APPLICATION_ACCESSIBLE:
      • Nach Beendigung interner Reinitialisierungen ruft die OsRestartTask AllowAccess() auf. Der Status wechselt zurück zu APPLICATION_ACCESSIBLE, Fremdzugriffe sind wieder zugelassen.
  3. Terminierungspfad (Terminaler Zustand):
    • Trigger APPLICATION_ACCESSIBLE → APPLICATION_TERMINATED:
      • ProtectionHook() liefert PRO_TERMINATEAPPL.
      • Synchroner Aufruf von TerminateApplication(AppID, NO_RESTART).
    • Trigger APPLICATION_RESTARTING → APPLICATION_TERMINATED:
      • Tritt während der Reinitialisierung in der OsRestartTask ein nicht behebbarer Fehler auf, ruft diese TerminateApplication(self, NO_RESTART) auf.
    • Abbruchbedingung: Zustand APPLICATION_TERMINATED besitzt keine ausgehenden Transitionen im laufenden OS-Betrieb.

4. Normative Relevanz & Entwickler-Hinweise

  • Konfiguration (OsRestartTask): Jede rücksetzbare OS-Application (OsApplicationRestart = TRUE) benötigt zwingend genau eine zugewiesene OsRestartTask. Diese darf keine blockierenden OS-Dienste nutzen, die ein Deadlock-Risiko bergen.
  • Inter-Application-Kommunikation (RTE): Clients anderer Partitionen müssen bei Zugriff auf Server-Runnables einer OS-Application in APPLICATION_RESTARTING oder APPLICATION_TERMINATED den Fehlercode E_OS_ACCESS bzw. den RTE-Fehler RTE_E_TIMEOUT / RTE_E_SHUTDOWN abfangen.
  • Ressourcen-Hygiene: Geteilte Ressourcen (z. B. Standard-OS-Resources, Shared Memory) verbleiben bei unsauberem Abbruch in inkonsistentem Zustand, falls sie nicht durch die OsRestartTask explizit freigegeben oder zurückgesetzt werden.
  • Rückgabewerte im ProtectionHook: Die Wahl von PRO_TERMINATEAPPL_RESTART setzt eine deterministische Restart-Logik voraus. Schlägt diese fehl oder löst die OsRestartTask selbst eine Schutzverletzung aus, führt dies normativ zum Shutdown des gesamten OS (ShutdownOS()) durch Rekursionsschutz.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Begleitender Spezifikationstext:

Explanation of Error Handling on Application Level AUTOSAR CP R23-11 7.3.1.5 OS-Application state machine An OS-Application can be in one of the following states (see OS SWS [14] and Figure 7.2): • APPLICATION_ACCESSIBLE: In this state, no protection violations have been detected and the software in the OS-Application runs normally. • APPLICATION_RESTARTING: The OS-Application is in a state of emergency after the detection of a serious error. No resources of the OS-Application can be accessed from other OS-Applications and only the OSRestartTask is running. All other tasks/OsIsrs/Alarms/etc. are terminated. The only way to get information into the OS-Application is to poll from the inside (i.e. from inside the OSRestartTask). • APPLICATION_TERMINATED: The OS-Application is no more. Nothing is running. No access allowed from other OS-Applications. The only way to exit this state is to restart the OS (by restarting the ECU). Figure 7.2: OS-Application State Machine. The OS-Application is set in the APPLICATION_ACCESSIBLE state by the StartOS () call. Once it has entered this state, all OS internal setup activities are completed, and the OS-Application is ready for execution. All state changes after startup are due to exceptional events which trigger the Protection Hook, or explicit requests to change the state of an OS-Application by calls to TerminateApplication(). After the Protection Hook returns PRO_TERMINATEAPPL_RESTART to the OS, or the application-level request for res

Vorkommen in AUTOSAR-Releases (2)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R22-11 AUTOSAR_EXP_ApplicationLevelErrorHandling S. 53 7.2 Figure 7.2: OS-Application State Machine.
R23-11 AUTOSAR_CP_EXP_ApplicationLevelErrorHandling S. 53 7.2 Figure 7.2: OS-Application State Machine.