AUTOSAR_SWS_ECUStateManager
FIG-befcb6df634dc9e0
806 × 983 px
1 Release(s)
Figure 5: StartPreOS Sequence
SHA-256 Inhalts-Fingerabdruck:
befcb6df634dc9e0a549cfa4e5a28cfb208118451e5d24381be109015594565d
✦
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
- Diagrammtyp: UML 2.x Sequenzdiagramm (Interaktionsdiagramm mit kombiniertem
opt-Fragment). - Technischer Zweck & Einordnung: Spezifikation der normativen Phase
STARTUP I(StartPreOS-Sequenz) des BSW-ModulsEcuM(ECU State Manager, AUTOSAR Classic R4.0.3). Das Diagramm definiert den deterministischen Bring-up-Ablauf von der Bare-Metal-Initialisierung (EcuM_Init) über die Post-Build-Konfigurationsvalidierung und Reset-Auswertung bis zur Übergabe der CPU-Kontrolle an das AUTOSAR OS viaStartOS.
2. Komponenten, Entitäten & Schnittstellen
- Lebenslinien / Akteure:
«module» EcuM: Zentrales BSW-Zustandssteuerungsmodul der System Services; orchestriert die Pre-OS-Initialisierung.Integration Code: OEM-/Plattform-spezifische Integrationsschicht (Callouts und BSW-Konfigurationscode außerhalb des generischen Moduls).«module» Mcu: MCAL-Treiber (Microcontroller Unit Driver) zur Hardwarediagnose und Takt-/Reset-Abfrage.«module» Os: AUTOSAR Operating System.
- Schnittstellen & Callouts:
EcuM_AL_DriverInitZero(): Callout zur Ausführung von Init Block 0 (Pre-Compile-Treiber ohne Konfigurationszeiger).EcuM_DeterminePbConfiguration(EcuM_ConfigType*): Integrationsfunktion zur Lokalisierung/Bereitstellung der Post-Build-Konfigurationswurzel im Speicher.EcuM_ErrorHook(uint16 reason): Kritischer Callout bei fatalen Konfigurationsfehlern (ECUM_E_CONFIGURATION_DATA_INCONSISTENT).EcuM_AL_DriverInitOne(const EcuM_ConfigType*): Callout zur Ausführung von Init Block I (Post-Build-abhängige MCAL-/BSW-Treiber vor OS-Start).Mcu_GetResetReason(): MCAL-API zur Abfrage des Hardware-Reset-Statusregisters; liefertMcu_ResetType.EcuM_SelectShutdownTarget(EcuM_TargetType, EcuM_ModeType)(bzw.Std_ReturnType EcuM_SelectShutdownTarget(EcuM_StateType, uint8)): Interne/Standard-Schnittstelle zur Festlegung des Default-Shutdown-Ziels.StartOS(AppModeType): OSEK/AUTOSAR-OS-API zum Hochfahren des Schedulers mitDEFAULT_APP_MODE.
- Datenstrukturen & Literale:
EcuM_ConfigType: Wurzelstruktur der Post-Build-Konfiguration.ECUM_E_CONFIGURATION_DATA_INCONSISTENT: Fester Fehlercode für inkonsistente Header, Prüfsummen oder Signaturen.Mcu_ResetType: Enumeration hardwarebasierter Reset-Ursachen (z. B. Power-On, Watchdog, Software-Reset).DEFAULT_APP_MODE: Normierter Standard-Startmodus des AUTOSAR OS.
3. Dynamisches Verhalten & Sequenzablauf
- Phase Init Block 0:
- Synchroner Aufruf von
EcuM_AL_DriverInitZero()durchEcuM. - Initialisierung minimaler Hardware-Basics (z. B. Core-Register, Watchdog-Early-Refresh, Low-Level-Taktung), die zwingend erforderlich sind, bevor Konfigurationsdaten ausgewertet werden können.
- Synchroner Aufruf von
- PB-Konfigurationsauflösung:
EcuMruftEcuM_DeterminePbConfiguration()auf, um den Zeiger auf dieEcuM_ConfigType-Struktur zu ermitteln (z. B. aus reserviertem Flash-Bereich, Bootmanager-Übergabe oder festem Linker-Symbol).
- Plausibilisierung:
- Interne synchrone Validierung:
Check consistency of configuration data()(Magic Number, Version Header, Hash/CRC).
- Interne synchrone Validierung:
- Fehlerpfad (
opt Configuration data inconsistent):- Falls Validierung fehlschlägt: Aufruf von
EcuM_ErrorHook(ECUM_E_CONFIGURATION_DATA_INCONSISTENT). - Abbruchbedingung: "This call never returns!" – Der Integrationscode muss in eine Endlosschleife, einen sicheren Haltemodus oder einen gezielten Reset verzweigen. Der Systemstart wird unwiderruflich abgebrochen.
- Falls Validierung fehlschlägt: Aufruf von
- Phase Init Block I (Init Block 1):
- Bei konsistenter Konfiguration: Aufruf von
EcuM_AL_DriverInitOne(const EcuM_ConfigType*). - Initialisierung aller weiteren Pre-OS-Treiber (z. B. Port, DIO, externe Treiber), die Post-Build-Parameter benötigen, aber vor der OS-Aktivierung bereitstehen müssen.
- Bei konsistenter Konfiguration: Aufruf von
- Reset-Grund-Auswertung:
- Abfrage über
Mcu_GetResetReason(). - Interne Zuordnung via
Map reset reason to wakeup source(): Verknüpft die physische Reset-Ursache mit der entsprechenden logischen AUTOSAR-Wakeup-Source (z. B.ECUM_WKSOURCE_POWER).
- Abfrage über
- Shutdown-Target-Initialisierung:
EcuM_SelectShutdownTarget(...)setzt das initiale Shutdown-Target (Default: meistECUM_STATE_RESEToderECUM_STATE_SLEEP), um einen definierten Zustand zu garantieren, falls vor Erreichen des Run-States abgebrochen wird.
- OS-Start:
- Synchroner Aufruf von
StartOS(DEFAULT_APP_MODE). - Der EcuM gibt die Ablaufsteuerung vollständig an den OS-Kernel ab; dieser Aufruf kehrt im Normalbetrieb nicht zurück. Die weitere Initialisierung (Init Block II/III) erfolgt asynchron im
StartupHookbzw. in nachgelagerten BSW-Tasks.
- Synchroner Aufruf von
4. Normative Relevanz & Entwickler-Hinweise
- Ausführungskontext: Die gesamte Sequenz läuft im Reset-Kontext (Supervisor-/Privileged-Mode) bei typischerweise global gesperrten Interrupts. Es existieren noch kein OS-Task-Handling, kein Timer-Tick und keine Schichten oberhalb der Basis-Treiber (kein Dem, kein Det, kein SchM).
- Treiberrestriktionen in Init Block 0:
- Module in
EcuM_AL_DriverInitZero()dürfen ausschließlich Pre-Compile-Parameter verwenden (VARIANT-PRE-COMPILE). Jeder Zugriff auf Post-Build-Zeiger führt zu undefiniertem Verhalten.
- Module in
- Fail-Safe im ErrorHook:
- Da Det und Dem noch nicht initialisiert sind, darf
EcuM_ErrorHookkeine Standard-Fehlerprotokollierung verwenden. Der Integrator muss den Watchdog gezielt triggern oder die CPU in einem unendlichen Loop sperren, um unkontrollierte Ausführung mit korrupter Konfiguration zu verhindern.
- Da Det und Dem noch nicht initialisiert sind, darf
- Konfigurationsvertrag Post-Build:
- Der von
EcuM_DeterminePbConfigurationzurückgegebene Zeiger muss zeiger- und typkompatibel zu den inEcuM_AL_DriverInitOneerwarteten Modulstrukturen sein und dauerhaft im adressierbaren Speicherbereich liegen.
- Der von
- Wakeup-Source-Mapping:
- Das Mapping von
Mcu_ResetTypezu Wakeup-Sources setzt eine lückenlose Parametrierung imEcuM-Modell (EcuMWakeupSource) voraus; nicht gemappte Hardware-Resets führen zu unvollständigem Startup-Tracking im State Manager.
- Das Mapping von
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.