AUTOSAR_EXP_ApplicationLevelErrorHandling
FIG-fea6c7d2a1eaaebe
982 × 587 px
1 Release(s)
Figure 2: OS-Application State Machine
SHA-256 Inhalts-Fingerabdruck:
fea6c7d2a1eaaebe726e8494bc7ce0883939e7cf929e93ed08e6750aa7d5fef6
✦
KI-generierte Bildanalyse & technische Beschreibung
Modell: gemini-3.8-flash (via agy) · Rezept figure-series@1 · erstellt am 2026-10-08
1. Diagrammtyp & Architektur-Kontext
- Diagrammtyp: UML-Zustandsautomat (State Machine Diagram, Modell-Präfix
stm OS Application State Machine). - Architektur-Kontext: AUTOSAR Classic Platform, Schicht des Betriebssystems (AUTOSAR OS / BSW) im Kontext der Fehlerbehandlungs- und Isolationsarchitektur (Application Level Error Handling / Safety Partitioning gemäß Scalability Class 3 & 4 / SC3, SC4).
- Technischer Zweck: Spezifikation des deterministischen Laufzeit-Lebenszyklus einer
OS-Application. Definiert die Zustände zur Kapselung von Software-Partitionen (Tasks, ISRs, Alarme, Schedule Tables) zwecks Laufzeitüberwachung, kontrolliertem Wiederanlauf (Application Restart) oder finaler Deaktivierung (Termination) im Fehlerfall zur Vermeidung von Gesamtsystem-Resets.
2. Komponenten, Entitäten & Schnittstellen
- Zustände (
ObjectState/ OS-Application Lifecycle):Initial: Pseudozustand; Eintrittspunkt während der OS-Bootphase (StartOS()).APPLICATION_ACCESSIBLE: Normalbetriebszustand. Alle zugewiesenen OS-Objekte sind aktivierbar; Lese- und Schreibzugriffe sowie Inter-OS-Application-Aufrufe (IOC / Cross-Core / Cross-Partition) sind autorisiert.APPLICATION_RESTARTING: Quarantäne- und Reinitialisierungszustand. Reguläre Tasks/ISRs sind gestoppt; ausschließlich der dedizierte Restart-Task (OsRestartTask) wird ausgeführt. Zugriffe externer Applikationen werden blockiert.APPLICATION_TERMINATED: Finaler Endzustand. Die Partition ist vollständig stillgelegt; alle zugehörigen OS-Objekte sind entladen bzw. dauerhaft inaktiv.
- Schnittstellen, Services & Events (Trigger):
- Protection-Hook-Aktionen:
PRO_TERMINATEAPPL: Return-Wert desProtectionHooknach einer Schutzverletzung (Memory Violation, Timing Violation); fordert das OS zur Terminierung ohne Neustart auf.PRO_TERMINATEAPPL_RESTART: Return-Wert desProtectionHook; fordert Terminierung aller regulären Tasks/ISRs und anschließenden Übergang in den Restart-Modus.
- OS-APIs:
TerminateApplication(ApplicationType Application, RestartType RestartOption): OS-Kernel-Dienst zur synchronen Terminierung einer Ziel-Partition (AppID) oder der eigenen Partition (self) mit den ParameternNO_RESTARToderRESTART.AllowAccess(void)(im Diagramm schematisch alsAllowAccess(AppID)dargestellt): Systemaufruf, mit dem der Restart-Task dem OS signalisiert, dass die Reinitialisierung abgeschlossen ist und Zugriffe wieder freigegeben werden.
- Protection-Hook-Aktionen:
3. Dynamisches Verhalten & Sequenzablauf
- Bootstrapping:
- Nach Durchlauf der Boot-Sequenz und Abschluss von
StartOS()wechselt jede konfigurierte OS-Application vom PseudozustandInitialdeterministisch in den ZustandAPPLICATION_ACCESSIBLE.
- Nach Durchlauf der Boot-Sequenz und Abschluss von
- Direkte Terminierung (Pfad
APPLICATION_ACCESSIBLE→APPLICATION_TERMINATED):- Trigger: Asynchron über den
ProtectionHookvia RückgabewertPRO_TERMINATEAPPLoder synchron über den API-AufrufTerminateApplication(AppID, NO_RESTART). - Ablauf: Der OS-Kernel bricht alle aktiven Tasks und ISRs der Ziel-Applikation sofort ab, entzieht ihnen die Prozessorzeit, gibt reservierte OS-Ressourcen/Spinlocks frei und markiert die Partition als
APPLICATION_TERMINATED.
- Trigger: Asynchron über den
- Partition-Restart (Pfad
APPLICATION_ACCESSIBLE→APPLICATION_RESTARTING):- Trigger: Rückgabewert
PRO_TERMINATEAPPL_RESTARTaus demProtectionHookoder expliziter API-AufrufTerminateApplication(AppID, RESTART). - Ablauf: Alle regulären Tasks/ISRs werden gestoppt, anstehende Alarme/Aktivierungen gelöscht. Das OS aktiviert exklusiv den in der OS-Konfiguration hinterlegten
OsRestartTask.
- Trigger: Rückgabewert
- Wiederherstellung (Pfad
APPLICATION_RESTARTING→APPLICATION_ACCESSIBLE):- Trigger: Synchroner Aufruf von
AllowAccess()durch den ausgeführtenOsRestartTask. - Ablauf: Das OS schaltet die Partition zurück in den Zustand
APPLICATION_ACCESSIBLE. Externe Zugriffe und normale Task-Aktivierungen sind ab diesem Zeitpunkt wieder erlaubt.
- Trigger: Synchroner Aufruf von
- Fehlgeschlagener Wiederanlauf (Pfad
APPLICATION_RESTARTING→APPLICATION_TERMINATED):- Trigger: Synchroner Aufruf von
TerminateApplication(self, NO_RESTART)durch denOsRestartTask(z. B. wenn eine Reinitialisierung der Hardware/Speicherbereiche scheitert) oder erneute Schutzverletzung während der Ausführung des Restart-Tasks. - Ablauf: Der Restart-Task wird beendet; die OS-Application wechselt endgültig in
APPLICATION_TERMINATED.
- Trigger: Synchroner Aufruf von
4. Normative Relevanz & Entwickler-Hinweise
- OS-Konfiguration (OIL / ARXML):
- Wird ein Zustandswechsel nach
APPLICATION_RESTARTINGvorgesehen, muss dem ContainerOsApplicationzwingend einOsRestartTaskzugeordnet sein. Ein Fehlen führt bei Anforderung vonRESTARTzur Kernel-Panic oder zum Gesamtsystem-Shutdown (ShutdownOS).
- Wird ein Zustandswechsel nach
- API-Fehlerverträge für SWCs & BSW:
- Befindet sich eine Ziel-Applikation in
APPLICATION_RESTARTINGoderAPPLICATION_TERMINATED, quittieren OS-Dienste (z. B.ActivateTask,SetEvent,GetAlarm) von außen den Zugriff zwingend mitE_OS_ACCESS. - Non-Trusted OS-Applications dürfen
TerminateApplicationnormativ nur auf sich selbst anwenden (Application == self); ein Zugriff auf fremde Applikationen wird mitE_OS_IDoderE_OS_ACCESSabgewiesen.
- Befindet sich eine Ziel-Applikation in
- RTE- und Inter-Partition-Kopplung (IOC):
- SWCs und Treiber dürfen während des Zustands
APPLICATION_RESTARTINGnicht blockierend auf Antworten der Partition warten. - RTE-Kommunikationskanäle müssen Timeouts und Rückfallstrategien (Invalidation Values, Init Values) implementieren, um zu verhindern, dass der Zustand
APPLICATION_TERMINATEDeiner einzelnen SWC benachbarte Partitionen kaskadierend blockiert.
- SWCs und Treiber dürfen während des Zustands
- Implementierungsanforderung an den Restart-Task:
- Der Restart-Task muss mit Supervisor/Trusted-Rechten oder dedizierten MPU-Rechten operieren, um verunreinigte statische Variablen/Puffer der Partition zurückzusetzen, und muss deterministisch vor Erreichen von Watchdog-Grenzen
AllowAccess()aufrufen.
- Der Restart-Task muss mit Supervisor/Trusted-Rechten oder dedizierten MPU-Rechten operieren, um verunreinigte statische Variablen/Puffer der Partition zurückzusetzen, und muss deterministisch vor Erreichen von Watchdog-Grenzen
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.