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 konfigurierteOsRestartTaskfü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 (RESTARTvs.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
- Initialisierung:
- Übergang von
InitialnachAPPLICATION_ACCESSIBLEsynchron während des Boot-Vorgangs viaStartOS(), sobald interne OS-Strukturen initialisiert sind.
- Übergang von
- Fehlerbehandlung / Reinitialisierungspfad:
- Trigger
APPLICATION_ACCESSIBLE→APPLICATION_RESTARTING:- Asynchron/Exception:
ProtectionHook()liefertPRO_TERMINATEAPPL_RESTART. - Synchron: Expliziter API-Aufruf
TerminateApplication(AppID, RESTART).
- Asynchron/Exception:
- 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
OsRestartTaskAllowAccess()auf. Der Status wechselt zurück zuAPPLICATION_ACCESSIBLE, Fremdzugriffe sind wieder zugelassen.
- Nach Beendigung interner Reinitialisierungen ruft die
- Trigger
- Terminierungspfad (Terminaler Zustand):
- Trigger
APPLICATION_ACCESSIBLE→APPLICATION_TERMINATED:ProtectionHook()liefertPRO_TERMINATEAPPL.- Synchroner Aufruf von
TerminateApplication(AppID, NO_RESTART).
- Trigger
APPLICATION_RESTARTING→APPLICATION_TERMINATED:- Tritt während der Reinitialisierung in der
OsRestartTaskein nicht behebbarer Fehler auf, ruft dieseTerminateApplication(self, NO_RESTART)auf.
- Tritt während der Reinitialisierung in der
- Abbruchbedingung: Zustand
APPLICATION_TERMINATEDbesitzt keine ausgehenden Transitionen im laufenden OS-Betrieb.
- Trigger
4. Normative Relevanz & Entwickler-Hinweise
- Konfiguration (
OsRestartTask): Jede rücksetzbare OS-Application (OsApplicationRestart = TRUE) benötigt zwingend genau eine zugewieseneOsRestartTask. 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_RESTARTINGoderAPPLICATION_TERMINATEDden FehlercodeE_OS_ACCESSbzw. den RTE-FehlerRTE_E_TIMEOUT/RTE_E_SHUTDOWNabfangen. - Ressourcen-Hygiene: Geteilte Ressourcen (z. B. Standard-OS-Resources, Shared Memory) verbleiben bei unsauberem Abbruch in inkonsistentem Zustand, falls sie nicht durch die
OsRestartTaskexplizit freigegeben oder zurückgesetzt werden. - Rückgabewerte im
ProtectionHook: Die Wahl vonPRO_TERMINATEAPPL_RESTARTsetzt eine deterministische Restart-Logik voraus. Schlägt diese fehl oder löst dieOsRestartTaskselbst eine Schutzverletzung aus, führt dies normativ zum Shutdown des gesamten OS (ShutdownOS()) durch Rekursionsschutz.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.