DEENESPTFRRUARHIKOZHNL

ECU State Manager (EcuM)

ModulEcuM (ECU State Manager)
BSW-Modul-ID10
Standard-Header#include "EcuM.h"
SWS-SpezifikationAUTOSAR_SWS_ECUStateManager.pdf
ClusterSystem Services

Modul-GuideKI-GENERIERT

Steuert Hochlauf, Abschalten, Schlafphasen und Weckquellen des Steuergeräts im Zusammenspiel mit dem BswM.
KI-GENERIERT ungeprüft Modell: claude-opus-5-5 · Aufwand: high · Temperatur: nicht steuerbar · Prompt: c4073030eea4 Herkunft Offene Fragen (1)
Kausaler Anker: R20-11 Gültig ab R20-11 Neu synthetisiert für diesen Spezifikationsstand.
KI-generiertclaude-opus-5-5 · 2026-10-13

Steuert Hochlauf, Abschalten, Schlafphasen und Weckquellen des Steuergeräts im Zusammenspiel mit dem BswM.

Der ECU State Manager steuert den Lebenszyklus eines Classic-Steuergeräts. Er initialisiert die Basissoftware bis zum OS-Start, führt die ECU in die Shutdown-Ziele SLEEP, RESET oder OFF und verwaltet die Weckquellen samt Validierung [SWS_EcuM_04136]. Hardwarenahe Schritte übernimmt der Integration Code über Callouts. Die RUN- und POST_RUN-Anforderungen der Nutzer arbitriert der EcuM, doch über die Zustandsübergänge entscheidet der BswM und meldet sie per EcuM_SetState zurück [SWS_EcuM_04116]. Wichtigste Randbedingung ist, dass in der SLEEP-Phase kein Weckereignis verloren gehen darf.

Der ECU State Manager (EcuM) ist in der Classic Platform für Hochlauf, Abschalten und Schlafphasen des Steuergeräts zuständig. EcuM_Init führt die StartPreOS-Sequenz mit den Init-Blöcken 0 und 1 aus. Dabei wählt und prüft der EcuM die Post-Build-Konfiguration und ruft schließlich StartOS auf. Danach startet EcuM_StartupTwo den SchM und den BswM [SWS_EcuM_02684] [SWS_EcuM_02906] [SWS_EcuM_02932]. Hardwarenahe Schritte liefert der Integration Code als Callouts, zum Beispiel EcuM_AL_DriverInitZero [SWS_EcuM_02905].

phasen start Power On / Reset STARTUP STARTUP (StartPreOS, StartPostOS) start->STARTUP UP UP (RUN / POST_RUN, optional) STARTUP->UP EcuM_StartupTwo, BswM übernimmt SHUTDOWN SHUTDOWN (OffPreOS, OffPostOS) UP->SHUTDOWN Ziel RESET oder OFF SLEEP SLEEP (GoSleep, Halt oder Poll) UP->SLEEP Ziel SLEEP, EcuM_GoDownHaltPoll OFF OFF SHUTDOWN->OFF EcuM_AL_SwitchOff RESET RESET SHUTDOWN->RESET EcuM_AL_Reset SLEEP->STARTUP Hardware-Reset / Power-Cycle SLEEP->UP Weckereignis: WakeupRestart RESET->STARTUP Neustart

Zustandsdiagramm: Die ECU durchläuft STARTUP, UP, SHUTDOWN und SLEEP. Aus SLEEP kehrt sie über WakeupRestart nach UP zurück. Quellen: RS ModeManagement S. 15, [SWS_EcuM_91005], [SWS_EcuM_02963]

Über Zustandsübergänge entscheidet der EcuM nicht selbst. Er sammelt die RUN- und POST_RUN-Anforderungen der konfigurierten Nutzer und meldet das Ergebnis dem BswM. Dessen Zustandswechsel übernimmt er über EcuM_SetState und gibt sie an die RTE weiter [SWS_EcuM_04144] [SWS_EcuM_04117] [SWS_EcuM_04116] SWS EcuM S. 103. EcuM_SelectShutdownTarget speichert das Ziel SLEEP, RESET oder OFF nur für später [SWS_EcuM_02585]. Beim Abschalten deinitialisiert OffPreOS den BswM und den SchM, prüft die Weckereignisse und beendet das OS. Der Shutdown-Hook ruft dann EcuM_Shutdown, das mit EcuM_AL_Reset oder EcuM_AL_SwitchOff endet [SWS_EcuM_03021] [SWS_EcuM_04074] [SWS_EcuM_04075].

Die SLEEP-Phase beginnt mit EcuM_GoDownHaltPoll. Zuerst aktiviert GoSleep die Weckquellen des Schlafmodus. Danach folgt entweder Halt mit RAM-Hash-Prüfung oder Poll mit einer Schleife über EcuM_SleepActivity und EcuM_CheckWakeup. Den Abschluss bildet WakeupRestart mit EcuM_AL_DriverRestart [SWS_EcuM_91002] [SWS_EcuM_02389] [SWS_EcuM_02863] [SWS_EcuM_03020] [SWS_EcuM_02963]. In dieser Phase darf kein Weckereignis verloren gehen [SWS_EcuM_02188].

Weckquellen sind einzelne Bits in EcuM_WakeupSourceType und haben jeweils einen der Zustände NONE, PENDING, VALIDATED oder EXPIRED [SWS_EcuM_04040] [SWS_EcuM_04091]. Treiber melden Ereignisse mit EcuM_SetWakeupEvent. Ist eine Validierung konfiguriert, startet der EcuM einen Timeout. Nur ein EcuM_ValidateWakeupEvent vor dessen Ablauf führt zu VALIDATED; bei konfiguriertem Kanalbezug wird dann auch ComM informiert. Andernfalls wird die Quelle EXPIRED [SWS_EcuM_02709] [SWS_EcuM_02645] [SWS_EcuM_04082].

validierung a Treiber erkennt Weckereignis: EcuM_SetWakeupEvent(sources) b Quelle gehört zum gewählten Schlafmodus? a->b x Ereignis ignorieren b->x nein c Validierung konfiguriert? (EcuMValidationTimeout) b->c ja e Bits in Pending-Variable setzen, quellenspezifischen Timeout starten c->e ja h Timeout stoppen, Validated-Bits setzen, BswM_EcuM_CurrentWakeup(VALIDATED), ComM_EcuM_WakeUpIndication / PNCWakeUpIndication (falls Kanal/PNC konfiguriert) c->h nein: impliziter EcuM_ValidateWakeupEvent f EcuM_MainFunction: EcuM_CheckValidation(wakeupSource) e->f g EcuM_ValidateWakeupEvent eingetroffen? f->g g->h ja i Timeout abgelaufen? g->i nein i->f nein j Expired-Bit setzen, BswM_EcuM_CurrentWakeup(EXPIRED), EcuM_StopWakeupSources() i->j ja

Aktivitätsdiagramm: Ein Weckereignis wird sofort validiert oder bleibt PENDING, bis eine Bestätigung eintrifft oder der Timeout abläuft. Quellen: SWS EcuM S. 63, [SWS_EcuM_02566], [SWS_EcuM_04082]

Im Fehlerfall ruft der EcuM den Callout EcuM_ErrorHook auf, wenn die Konfiguration inkonsistent ist oder die RAM-Prüfung fehlschlägt [SWS_EcuM_04033] [SWS_EcuM_91003]. Entwicklungsfehler wie mehrfache Anforderungen oder unbekannte Weckquellen meldet er an DET [SWS_EcuM_03024] [SWS_EcuM_02867].

Rolle und Systemgrenze des ECU State Managers

Der ECU State Manager (EcuM) gibt in der Classic Platform den Rahmen für den Lebenszyklus des Steuergeräts vor. Er initialisiert die Basissoftware bis zum Start des Betriebssystems. Danach führt er die ECU kontrolliert in eines der Shutdown-Ziele SLEEP, RESET oder OFF [SWS_EcuM_04136]. Seine Zustände legt EcuM_StateType fest: STARTUP, RUN, POST_RUN, SHUTDOWN und SLEEP [SWS_EcuM_91005]. Den SW-Cs meldet er sie über die Mode-Declaration-Group EcuM_Mode, deren Initialmodus STARTUP ist [SWS_EcuM_04107] [SWS_EcuM_04132].

phasen start Power On / Reset STARTUP STARTUP (StartPreOS, StartPostOS) start->STARTUP UP UP (RUN / POST_RUN, optional) STARTUP->UP EcuM_StartupTwo, BswM übernimmt SHUTDOWN SHUTDOWN (OffPreOS, OffPostOS) UP->SHUTDOWN Ziel RESET oder OFF SLEEP SLEEP (GoSleep, Halt oder Poll) UP->SLEEP Ziel SLEEP, EcuM_GoDownHaltPoll OFF OFF SHUTDOWN->OFF EcuM_AL_SwitchOff RESET RESET SHUTDOWN->RESET EcuM_AL_Reset SLEEP->STARTUP Hardware-Reset / Power-Cycle SLEEP->UP Weckereignis: WakeupRestart RESET->STARTUP Neustart

Zustandsdiagramm: Die ECU durchläuft STARTUP, UP, SHUTDOWN und SLEEP. Aus SLEEP kehrt sie über WakeupRestart nach UP zurück, nach einem Hardware-Reset oder Power-Cycle startet sie in STARTUP neu. Quellen: RS ModeManagement S. 15, [SWS_EcuM_91005], [SWS_EcuM_02963], [SWS_EcuM_04001]

Über die Zustandsübergänge entscheidet nicht der EcuM selbst. Er besitzt keine eigene Zustandsmaschine, arbitriert nur die Anforderungen und überlässt die Übergänge dem BSW Mode Manager (BswM) SWS EcuM S. 103. Hardwarenahe und projektspezifische Schritte lagert er in Callouts des Integration Code aus, die über EcuM_Externals.h bereitstehen. Beispiele sind EcuM_AL_DriverInitZero und EcuM_AL_SwitchOff [SWS_EcuM_02905] [SWS_EcuM_02920]. Die Schnittstellen der Nachbarmodule sind in den Tabellen der importierten Funktionen aufgeführt, etwa BswM_EcuM_CurrentWakeup, Can_Init und Det_ReportError [SWS_EcuM_02858] [SWS_EcuM_02859].

kontext EcuM EcuM SWC SW-Cs (über RTE-Ports) EcuM->SWC currentMode (EcuM_Mode) BswM BswM EcuM->BswM BswM_Init / BswM_Deinit, BswM_EcuM_CurrentWakeup, RequestedState, CurrentState IC Integration Code (Callouts in EcuM_Externals.h) EcuM->IC EcuM_AL_DriverInit*, EcuM_AL_DriverRestart, EcuM_AL_Reset, EcuM_AL_SwitchOff, EcuM_*WakeupSources Os Os EcuM->Os StartOS, ShutdownOS, GetResource Mcu Mcu EcuM->Mcu Mcu_GetResetReason, Mcu_SetMode SchM SchM EcuM->SchM SchM_Init / Start / Deinit ComM ComM EcuM->ComM ComM_EcuM_WakeUpIndication, ComM_EcuM_PNCWakeUpIndication Det DET EcuM->Det Det_ReportError SWC->EcuM RequestRUN / ReleaseRUN, SelectShutdownTarget, AlarmClock, BootTarget BswM->EcuM EcuM_SetState, EcuM_SelectShutdownTarget, EcuM_GoDownHaltPoll Os->EcuM EcuM_Shutdown (Shutdown-Hook) Drv Treiber mit Weckquellen (z. B. CanTrcv, Icu, Gpt) Drv->EcuM EcuM_SetWakeupEvent, EcuM_ValidateWakeupEvent

Kontextdiagramm: Der EcuM steht zwischen SW-Cs, BswM, Integration Code, OS, MCAL-Treibern und ComM. Über Übergänge entscheidet der BswM, die Hardwareschritte führt der Integration Code aus. Quellen: SWS EcuM S. 34, [SWS_EcuM_02858], [SWS_EcuM_04135]

Hochlauf: StartPreOS, StartPostOS und Konfigurationsdaten

Vor EcuM_Init setzt der EcuM nur eine minimale MCU-Initialisierung voraus: Ein Stack ist eingerichtet und die C-Variablen sind initialisiert SWS EcuM S. 39. EcuM_Init führt die StartPreOS-Sequenz aus und kehrt nicht zurück, weil sie StartOS aufruft [SWS_EcuM_02811] [SWS_EcuM_02684]. Dabei werden alle Module initialisiert, die für den OS-Start nötig sind [SWS_EcuM_02603].

Init Block 0 (EcuM_AL_DriverInitZero) bereitet das Laden der Post-Build-Daten vor. Er darf deshalb nur Module verwenden, die zur Pre-Compile- oder Link-Zeit konfiguriert sind [SWS_EcuM_02905]. Anschließend liefert EcuM_DeterminePbConfiguration einen Zeiger auf EcuM_ConfigType. Diese Struktur referenziert die Konfigurationen aller weiteren BSW-Module [SWS_EcuM_02906] [SWS_EcuM_02801]. Sie enthält einen Variantenbezeichner und einen Hash. Den Hash prüft der EcuM gegen ECUM_CONFIGCONSISTENCY_HASH, und zwar für alle post-build-konfigurierbaren Module, bevor das erste davon initialisiert wird [SWS_EcuM_02794] [SWS_EcuM_02798] [SWS_EcuM_02796].

Init Block 1 (EcuM_AL_DriverInitOne) initialisiert die Treiber nach einem Power-on-Reset, darunter die MCU [SWS_EcuM_02907] SWS EcuM S. 146. Die Reihenfolge in beiden Blöcken legen EcuMDriverInitListZero und EcuMDriverInitListOne fest. Jede Init-Funktion erhält ihre Parameter aus dem zugehörigen EcuMModuleService-Container [SWS_EcuM_02559] [SWS_EcuM_02730]. Den Reset-Grund des Mcu-Treibers übersetzt der EcuM in eine Weckquelle und merkt sie sich. Lässt sich der Grund nicht bestimmen, setzt er ECUM_WKSOURCE_RESET [SWS_EcuM_02623] [SWS_EcuM_02601]. Ist EcuMResetLoopDetection gesetzt, ruft der EcuM bei jedem Start den Callout EcuM_LoopDetection auf [SWS_EcuM_04137].

Hochlauf: StartPreOS und StartPostOSBootloaderEcuMIntegration CodeMcuOsSchMBswMUse Case: StartPreOS (EcuM_Init)EcuM_Init()EcuM_AL_DriverInitZero()EcuM_DeterminePbConfiguration()const EcuM_ConfigType*Konsistenz der Konfigurationsdaten prüfenoptKonfigurationsdaten inkonsistentEcuM_ErrorHook(ECUM_E_CONFIGURATION_DATA_INCONSISTENT)EcuM_AL_DriverInitOne()Mcu_GetResetReason()Reset-Grund auf Weckquelle abbildenStartOS(ECUM_DEFAULT_APP_MODE)Use Case: StartPostOS (EcuM_StartupTwo)EcuM_StartupTwo()(aus Task nach StartOS)SchM_Init / SchM_Start / SchM_StartTimingBswM_Init()

Sequenzdiagramm: EcuM_Init durchläuft Init Block 0, die Auswahl und Prüfung der Konfiguration, Init Block 1 und die Reset-Auswertung bis StartOS. Danach startet EcuM_StartupTwo SchM und BswM. Quellen: SWS EcuM S. 38, SWS EcuM S. 78, [SWS_EcuM_02684], [SWS_EcuM_02932]

Nach dem OS-Start ruft eine Task EcuM_StartupTwo auf, die direkt infolge von StartOS gestartet wurde [SWS_EcuM_02806]. Diese Funktion führt StartPostOS aus: Sie initialisiert und startet den SchM und ruft BswM_Init auf [SWS_EcuM_02932] SWS EcuM S. 42. Weitere Initialisierungen übernimmt der BswM über die generierten Funktionen EcuM_AL_DriverInitBswM_<x> [SWS_EcuM_04114].

Auf Mehrkern-ECUs läuft je Kern eine EcuM-Instanz, und der Master-EcuM startet die übrigen Kerne. Init Block 0 und 1 laufen auf jedem Kern, initialisieren dort aber nur dessen MCAL-Module. SchM, OS und alle kernlokalen BswM werden auf jedem Kern gestartet [SWS_EcuM_04145] [SWS_EcuM_04093] [SWS_EcuM_04014] SWS EcuM S. 71.

RUN und POST_RUN: Nutzeranforderungen und Arbitrierung mit dem BswM

Ist EcuMModeHandling aktiv, können Nutzer RUN und POST_RUN anfordern und wieder freigeben [SWS_EcuM_04115] [SWS_EcuM_04130]. Dazu dienen EcuM_RequestRUN, EcuM_ReleaseRUN, EcuM_RequestPOST_RUN und EcuM_ReleasePOST_RUN. Alle vier erwarten eine konfigurierte Nutzerkennung vom Typ EcuM_UserType [SWS_EcuM_04124] [SWS_EcuM_04127] [SWS_EcuM_04128] [SWS_EcuM_04129]. Der EcuM verfolgt Anforderungen je Nutzer, und ein Nutzer kann sie nicht schachteln. RUN- und POST_RUN-Anforderungen führt er in getrennten Variablen [SWS_EcuM_04126] [SWS_EcuM_04125] SWS EcuM S. 116. SW-Cs erreichen diese Dienste über den Port StateRequest_{UserName} [SWS_EcuM_04135].

Die erste RUN- oder POST_RUN-Anforderung meldet der EcuM dem BswM mit BswM_EcuM_RequestedState(ECUM_STATE_APP_RUN, ECUM_RUNSTATUS_REQUESTED). Die letzte Freigabe von RUN bzw. POST_RUN meldet er mit dem jeweiligen Zustand und ECUM_RUNSTATUS_RELEASED [SWS_EcuM_04144] [SWS_EcuM_04117] [SWS_EcuM_04119]. Der BswM wertet seine Regeln aus und setzt den neuen Zustand mit EcuM_SetState. Der EcuM zeigt der RTE daraufhin den passenden Modus an und meldet nach deren Rückmeldung BswM_EcuM_CurrentState [SWS_EcuM_04122] [SWS_EcuM_04116] [SWS_EcuM_04143]. Der Mode-Management-Guide zeigt passende BswM-Regeln, zum Beispiel den Wechsel nach POST_RUN, sobald RUN freigegeben ist Mode-Management-Guide S. 34.

RUN-/POST_RUN-Arbitrierung zwischen EcuM und BswMSW-C (EcuM-Nutzer)RTEEcuMBswMUse Case: AnforderungEcuM_RequestRUN(user)über Port StateRequest_{UserName}E_OKerste RUN- oder POST_RUN-AnforderungBswM_EcuM_RequestedState(ECUM_STATE_APP_RUN, ECUM_RUNSTATUS_REQUESTED)Regelauswertung entscheidet über den ÜbergangEcuM_SetState(state)Rte_Switch_currentMode_currentMode(mode)Rückmeldung über Acknowledgement-PortBswM_EcuM_CurrentState(state)Use Case: FreigabeEcuM_ReleaseRUN(user)letzte RUN-Anforderung freigegebenBswM_EcuM_RequestedState(ECUM_STATE_APP_RUN, ECUM_RUNSTATUS_RELEASED)EcuM_SetState(state)z. B. Wechsel nach POST_RUN

Sequenzdiagramm: Der EcuM arbitriert die Anforderungen der Nutzer und meldet das Ergebnis dem BswM. Der BswM gibt den Zustand per EcuM_SetState zurück, und der EcuM reicht ihn an die RTE weiter. Quellen: [SWS_EcuM_04144], [SWS_EcuM_04117], [SWS_EcuM_04116], [SWS_EcuM_04143]

Shutdown-Ziele und das Abschalten über OffPreOS und OffPostOS

EcuM_SelectShutdownTarget speichert Ziel und Modus nur für die spätere SHUTDOWN- oder SLEEP-Phase und stößt selbst nichts an [SWS_EcuM_02822] [SWS_EcuM_00624] [SWS_EcuM_02585]. Der Modusparameter wählt beim Ziel SLEEP einen konfigurierten Schlafmodus und beim Ziel RESET einen Reset-Modus. Bei OFF wird er ignoriert [SWS_EcuM_02979] [SWS_EcuM_02185]. Zu den Reset-Modi gehören mindestens Mcu_PerformReset, WdgM_PerformReset und das Umschalten eines I/O-Pins [SWS_EcuM_04005] [SWS_EcuM_04044]. Die Ursache eines Shutdowns wird mit EcuM_SelectShutdownCause festgehalten [SWS_EcuM_04007] [SWS_EcuM_04050]. EcuM_GetLastShutdownTarget liefert das Ziel, aus dem zuletzt geweckt oder hochgefahren wurde. Dieser Wert bleibt bis zum nächsten Shutdown unverändert [SWS_EcuM_02156].

Die SHUTDOWN-Phase endet entweder in OFF oder in RESET [SWS_EcuM_03022]. Wann das Ziel gesetzt wird, bestimmt in der Regel der BswM SWS EcuM S. 66. In OffPreOS werden BswM und SchM deinitialisiert und die Weckereignisse geprüft. Stehen Ereignisse an, wird RESET als Ziel gesetzt. Die letzte Aktion ist ShutdownOS [SWS_EcuM_03021] [SWS_EcuM_02952] SWS EcuM S. 49.

Anschließend ruft der Shutdown-Hook EcuM_Shutdown auf, das nicht zurückkehrt. Nach EcuM_OnGoOffTwo folgt beim Ziel RESET EcuM_AL_Reset und beim Ziel OFF EcuM_AL_SwitchOff [SWS_EcuM_02953] [SWS_EcuM_02917] [SWS_EcuM_04074] [SWS_EcuM_04075]. Interpretation: Auch bei RESET und OFF dürfte der BswM die Phase über EcuM_GoDownHaltPoll auslösen, denn dessen Rückgabebeschreibung unterscheidet nach dem Shutdown-Ziel [SWS_EcuM_91002]. Frage Q-29bca5a7c6e82c98 (offen)

Abschalten über OffPreOS und OffPostOSBswMEcuMSchMOsIntegration CodeEcuM_SelectShutdownTarget(target, mode)E_OKEcuM_GoDownHaltPoll(UserID)Interpretation: Auslöser auch bei RESET/OFFUse Case: OffPreOSBswM_Deinit()SchM_Deinit()Weckereignisse prüfen (pending oder validiert,je nach EcuMIgnoreWakeupEvValOffPreOS)optWeckereignisse anstehendShutdown-Ziel RESET setzen(EcuMDefaultResetModeRef)ShutdownOS()Use Case: OffPostOSEcuM_Shutdown()aus dem Shutdown-HookEcuM_OnGoOffTwo()altShutdown-Ziel RESETEcuM_AL_Reset(EcuM_ResetType)Shutdown-Ziel OFFEcuM_AL_SwitchOff()

Sequenzdiagramm: OffPreOS deinitialisiert BswM und SchM, prüft die Weckereignisse und beendet das OS. OffPostOS verzweigt dann je nach Shutdown-Ziel in Reset oder Abschalten. Quellen: SWS EcuM S. 49, SWS EcuM S. 49, [SWS_EcuM_02953], [SWS_EcuM_91002]

SLEEP-Phase: GoSleep, Halt oder Poll und WakeupRestart

Ist SLEEP als Ziel gewählt, leitet EcuM_GoDownHaltPoll die SLEEP-Phase ein. Der Aufrufer muss das passende Ziel vorher gesetzt haben [SWS_EcuM_91002] SWS EcuM S. 54. In GoSleep aktiviert der EcuM per EcuM_EnableWakeupSources alle Weckquellen aus EcuMWakeupSourceMask des Ziel-Schlafmodus. Auf Mehrkern-ECUs belegt er zusätzlich die kernspezifische Ressource RES_AUTOSAR_ECUM. Anders als beim Shutdown bleibt das OS aktiv [SWS_EcuM_02389] [SWS_EcuM_03010] [SWS_EcuM_02951]. Kein Weckereignis darf verloren gehen. Ist schon während GoSleep eines eingetreten, werden Halt und Poll übersprungen [SWS_EcuM_02188].

Schlafmodi, die den Mikrocontroller anhalten, durchlaufen die Halt-Sequenz. Davor ruft der EcuM EcuM_GenerateRamHash auf, danach EcuM_CheckRamHash [SWS_EcuM_02960] [SWS_EcuM_02863]. Schlafmodi mit reduziertem Takt nutzen dagegen die Poll-Sequenz. Sie ruft EcuM_SleepActivity und EcuM_CheckWakeup in einer blockierenden Schleife auf, bis ein Ereignis als pending oder validiert gemeldet ist [SWS_EcuM_02962] [SWS_EcuM_03020]. In R20-11 ist EcuM_CheckWakeup noch ein Callout. Erst ab R21-11 heißt dieser Callout EcuM_CheckWakeupHook [SWS_EcuM_02929] SWS EcuM S. 145.

Ein Weckereignis führt in die WakeupRestart-Sequenz [SWS_EcuM_02963] SWS EcuM S. 56:

  1. Die MCU kehrt in den Normalmodus zurück.
  2. EcuM_DisableWakeupSources deaktiviert die gerade anstehenden Weckquellen; alle anderen bleiben scharf [SWS_EcuM_02922].
  3. EcuM_AL_DriverRestart initialisiert die betroffenen Treiber neu [SWS_EcuM_02923].
  4. Der Scheduler wird wieder freigegeben.

Tritt während des Schlafs ein Hardware-Reset oder ein Power-Cycle auf, beginnt die ECU dagegen neu in STARTUP [SWS_EcuM_04001].

SLEEP-Phase: GoSleep, Halt oder Poll, WakeupRestartBswMEcuMIntegration CodeOsMcuWeckquelle (Treiber)EcuM_SelectShutdownTarget(SLEEP, Schlafmodus)EcuM_GoDownHaltPoll(UserID)Use Case: GoSleepEcuM_EnableWakeupSources(EcuMWakeupSourceMask des Schlafmodus)BswM_EcuM_CurrentWakeup(sources, ECUM_WKSTATUS_NONE)GetResource(RES_AUTOSAR_ECUM_<core#>)altSchlafmodus hält den µC an (Halt)EcuM_GenerateRamHash()Mcu_SetMode(Schlafmodus)HALT bis zum Weck-InterruptEcuM_CheckRamHash()Schlafmodus mit reduziertem Takt (Poll)Mcu_SetMode(Schlafmodus)loopkein Ereignis pending oder validiertEcuM_SleepActivity()EcuM_CheckWakeup(wakeupSource)<Module>_CheckWakeup()EcuM_SetWakeupEvent(sources)falls Weckereignis erkanntUse Case: WakeupRestartMcu_SetMode(EcuMNormalMcuModeRef)EcuM_GetPendingWakeupEvents()EcuM_DisableWakeupSources(pending)EcuM_AL_DriverRestart()ReleaseResource(RES_AUTOSAR_ECUM_<core#>)

Sequenzdiagramm: GoSleep bereitet die Weckquellen vor, Halt oder Poll setzen den Schlaf um, und WakeupRestart führt zurück in den UP-Zustand. Quellen: SWS EcuM S. 52, SWS EcuM S. 85, SWS EcuM S. 87, SWS EcuM S. 58

Optional führt der EcuM eine Uhr, die die Sekunden seit dem Anschluss der Batterie zählt [SWS_EcuM_04069]. Jeder Nutzer kann höchstens einen Weckalarm setzen. Der Master-Alarm entspricht immer dem frühesten Nutzeralarm [SWS_EcuM_04070] [SWS_EcuM_04072]. EcuM_SetAbsWakeupAlarm lehnt einen späteren Zeitpunkt mit ECUM_E_EARLIER_ACTIVE und einen bereits vergangenen mit ECUM_E_PAST ab [SWS_EcuM_04059] [SWS_EcuM_04060]. Beim Verlassen von SLEEP verwirft der EcuM alle Alarme [SWS_EcuM_04009].

Weckquellen: Zustände, Validierung und Abfrage

Der EcuM verwaltet bis zu 32 Weckquellen als Bitmaske vom Typ EcuM_WakeupSourceType. Fünf Bits sind vordefiniert, darunter ECUM_WKSOURCE_POWER und ECUM_WKSOURCE_RESET. Weitere Quellen erhalten über EcuMWakeupSourceId die Bits 5 bis 31 [SWS_EcuM_04040] [SWS_EcuM_02165] [SWS_EcuM_02166] SWS EcuM S. 63. Jede Quelle befindet sich in einem der Zustände NONE, PENDING, VALIDATED oder EXPIRED [SWS_EcuM_04091] [SWS_EcuM_04041]. Jeden Zustandswechsel meldet der EcuM dem BswM als Mode-Request [SWS_EcuM_04003].

weckzustaende start Power On NONE ECUM_WKSTATUS_NONE entry: BswM_EcuM_CurrentWakeup(sources, NONE) start->NONE PENDING ECUM_WKSTATUS_PENDING entry: BswM_EcuM_CurrentWakeup(sources, PENDING) entry: EcuM_StartWakeupSources() do: Validierungssequenz NONE->PENDING EcuM_SetWakeupEvent [mit Validierung] VALIDATED ECUM_WKSTATUS_VALIDATED entry: BswM_EcuM_CurrentWakeup(sources, VALIDATED) entry: ComM_EcuM_WakeUpIndication() NONE->VALIDATED EcuM_SetWakeupEvent [ohne Validierung] PENDING->NONE EcuM_ClearWakeupEvent PENDING->VALIDATED EcuM_ValidateWakeupEvent EXPIRED ECUM_WKSTATUS_EXPIRED entry: BswM_EcuM_CurrentWakeup(sources, EXPIRED) entry: EcuM_StopWakeupSources() PENDING->EXPIRED Validierungs-Timeout (EcuM_MainFunction) VALIDATED->NONE EcuM_ClearWakeupEvent EXPIRED->NONE EcuM_ClearWakeupEvent

Zustandsdiagramm: Eine Weckquelle geht von NONE über PENDING nach VALIDATED oder EXPIRED. Jeder Zustandswechsel wird dem BswM gemeldet, und EcuM_ClearWakeupEvent setzt die Quelle auf NONE zurück. Quellen: SWS EcuM S. 60, [SWS_EcuM_04091], [SWS_EcuM_02683]

Ein Treiber meldet ein erkanntes Ereignis genau einmal mit EcuM_SetWakeupEvent SWS EcuM S. 71. Die Funktion darf auch aus Interrupt-Kontext und aus OS-freiem Kontext aufgerufen werden. Sie setzt die übergebenen Bits per ODER in die Pending-Variable. Quellen, die nicht zum gewählten Schlafmodus gehören, ignoriert sie [SWS_EcuM_02826] [SWS_EcuM_02171] [SWS_EcuM_01117] [SWS_EcuM_04138].

Muss das Ereignis validiert werden, startet der EcuM einen quellenspezifischen Timeout gemäß EcuMValidationTimeout. Wird dieselbe Quelle erneut gemeldet, startet der Timeout nicht neu [SWS_EcuM_02975] [SWS_EcuM_02565] [SWS_EcuM_02709] [SWS_EcuM_02712]. Ist für eine Quelle keine Validierung konfiguriert, wirkt EcuM_SetWakeupEvent zugleich wie EcuM_ValidateWakeupEvent. Die fünf vordefinierten Quellen werden nie validiert [SWS_EcuM_02566] [SWS_EcuM_02625].

Die Validierung selbst läuft in EcuM_MainFunction, die dafür den Callout EcuM_CheckValidation aufruft [SWS_EcuM_02539] [SWS_EcuM_02925] SWS EcuM S. 64. EcuM_ValidateWakeupEvent hat folgende Wirkung [SWS_EcuM_02710] [SWS_EcuM_04078] [SWS_EcuM_04079] [SWS_EcuM_02645] [SWS_EcuM_04140]:

  • Sie stoppt den Timeout und setzt die Bits in der Validated-Variable.
  • Sie meldet dem BswM ECUM_WKSTATUS_VALIDATED.
  • Ist ein Kanal oder PNC konfiguriert, ruft sie ComM_EcuM_WakeUpIndication bzw. ComM_EcuM_PNCWakeUpIndication auf.

Läuft der Timeout ab, setzt die Hauptfunktion das Expired-Bit und meldet ECUM_WKSTATUS_EXPIRED [SWS_EcuM_04081] [SWS_EcuM_04082]. Im Zustand RUN wirkt die Validierung nur für Kommunikationskanäle [SWS_EcuM_02790] [SWS_EcuM_02791].

validierung a Treiber erkennt Weckereignis: EcuM_SetWakeupEvent(sources) b Quelle gehört zum gewählten Schlafmodus? a->b x Ereignis ignorieren b->x nein c Validierung konfiguriert? (EcuMValidationTimeout) b->c ja e Bits in Pending-Variable setzen, quellenspezifischen Timeout starten c->e ja h Timeout stoppen, Validated-Bits setzen, BswM_EcuM_CurrentWakeup(VALIDATED), ComM_EcuM_WakeUpIndication / PNCWakeUpIndication (falls Kanal/PNC konfiguriert) c->h nein: impliziter EcuM_ValidateWakeupEvent f EcuM_MainFunction: EcuM_CheckValidation(wakeupSource) e->f g EcuM_ValidateWakeupEvent eingetroffen? f->g g->h ja i Timeout abgelaufen? g->i nein i->f nein j Expired-Bit setzen, BswM_EcuM_CurrentWakeup(EXPIRED), EcuM_StopWakeupSources() i->j ja

Aktivitätsdiagramm: Bei Quellen ohne Validierungsbedarf ist ein Ereignis sofort validiert. Bei den übrigen bleibt es PENDING, bis EcuM_ValidateWakeupEvent eintrifft oder der Timeout abläuft und die Quelle EXPIRED wird. Quellen: SWS EcuM S. 63, SWS EcuM S. 78, [SWS_EcuM_02566], [SWS_EcuM_04082]

Den aktuellen Stand fragen EcuM_GetPendingWakeupEvents, EcuM_GetValidatedWakeupEvents und EcuM_GetExpiredWakeupEvents ab. EcuM_ClearWakeupEvent löscht die übergebenen Bits aus allen drei Variablen [SWS_EcuM_01156] [SWS_EcuM_02533] [SWS_EcuM_04076] [SWS_EcuM_02683].

Manche Weckquellen haben eine integrierte Spannungsversorgung, sodass ihr Wecken wie ein Power-on-Reset wirkt. Für sie startet EcuM_StartCheckWakeup einen CheckWakeupTimer, der ein vorzeitiges Abschalten verhindert. EcuM_SetWakeupEvent oder EcuM_EndCheckWakeup beendet den Timer wieder [SWS_EcuM_04096] [SWS_EcuM_04098] [SWS_EcuM_02927] SWS EcuM S. 70.

Verhalten im Fehlerfall

Unbehebbare Fehler meldet der EcuM über den Callout EcuM_ErrorHook mit dem zugehörigen Fehlercode [SWS_EcuM_04033] [SWS_EcuM_02904]. In R20-11 gibt es dafür zwei Codes [SWS_EcuM_91003] [SWS_EcuM_02987]:

  • ECUM_E_CONFIGURATION_DATA_INCONSISTENT bei inkonsistenten Post-Build-Daten.
  • ECUM_E_RAM_CHECK_FAILED, wenn die RAM-Prüfung nach dem Wecken fehlschlägt.

Schlägt ein OS-Aufruf fehl, behält der EcuM den angeforderten Zustand bei und ruft ebenfalls den ErrorHook auf [SWS_EcuM_04139]. Einen eigenen Code ECUM_E_OS_CALL_FAILED und den Hinweis, dass der Hook nicht zurückkehrt, enthält erst eine spätere Fassung der Spezifikation SWS EcuM S. 102. Fehler während der Initialisierung ignoriert der EcuM, zum Beispiel die Rückgabewerte von Init-Funktionen [SWS_EcuM_02980].

Bei aktivierter Entwicklungsfehlererkennung prüfen alle Funktionen ihre Parameter und Laufbedingungen. Dafür stehen ECUM_E_UNINIT, ECUM_E_SERVICE_DISABLED, ECUM_E_PARAM_POINTER und ECUM_E_INVALID_PAR zur Verfügung [SWS_EcuM_03009]. Weitere Fälle meldet der EcuM an DET:

Tritt während des Abschaltens ein Weckereignis auf, schließt der EcuM den Shutdown ab und startet sofort neu [SWS_EcuM_02756]. Kann sich die ECU in EcuM_AL_SwitchOff nicht selbst stromlos schalten, ist ein Reset eine angemessene Reaktion [SWS_EcuM_02920] SWS EcuM S. 141.

Weiterführende Detailbelege

Dieser Leitfaden wurde KI-gestützt aus Spezifikationsauszügen zum Modul EcuM (Classic Platform, R20-11) erstellt. Maßgeblich sind die verlinkten Requirements; als Interpretation gekennzeichnete Aussagen sind nicht normativ belegt.

ECU State Manager (EcuM)

Controls ECU lifecycle states: Startup, Run, PostRun, Sleep, and Shutdown.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

function EcuM_GoDownHaltPoll [SWS_EcuM_91002] 📄 PDF

Std_ReturnType EcuM_GoDownHaltPoll (EcuM_UserType UserID);

Instructs the ECU State Manager module to go into a sleep mode, Reset or OFF depending on the previously selected shutdown target.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 71091e858c55 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone und reentrante Funktion EcuM_GoDownHaltPoll weist das Modul ECU State Manager an, abhängig vom zuvor ausgewählten Shutdown-Ziel in einen Sleep-Modus, ein Reset oder den Zustand OFF überzugehen [SWS_EcuM_91002]. Sie ist über die Header-Datei EcuM.h verfügbar und besitzt die Service-ID 0x2c [SWS_EcuM_91002].

Parameter und Aufrufberechtigung

Als einziger Eingabeparameter wird UserID vom Typ EcuM_UserType übergeben. Dieser identifiziert den aufrufenden Benutzer. Ein Aufruf ist strikt reglementiert: Es dürfen ausschließlich vorkonfigurierte Benutzer diese Funktion ausführen [SWS_EcuM_91002].

Rückgabewerte und Ablaufverhalten

Das Rückgabeverhalten hängt maßgeblich von der Art des gesetzten Shutdown-Ziels ab [SWS_EcuM_91002]:

  • E_NOT_OK: Die Anforderung wurde nicht akzeptiert [SWS_EcuM_91002].
  • E_OK: Ist das Ziel SLEEP, kehrt die Funktion nach dem Verlassen des Schlafzustands erfolgreich mit diesem Status zurück [SWS_EcuM_91002].
  • Keine Rückkehr: Wurde als Shutdown-Ziel RESET oder OFF gewählt, kehrt der Funktionsaufruf nicht mehr zum Aufrufer zurück [SWS_EcuM_91002].

Einschränkungen und Fehlerbehandlung

Obwohl die Funktion formal als reentrant deklariert ist, setzt ihre bestimmungsgemäße Ausführung die vorherige Festlegung eines gültigen Shutdown-Ziels voraus [SWS_EcuM_91002]. Spezifische DET- oder DEM-Fehlercodes sind in der Schnittstellenspezifikation nicht aufgeführt; ein Fehlschlag oder die Zurückweisung der Anforderung wird unmittelbar über den Rückgabewert E_NOT_OK angezeigt [SWS_EcuM_91002].

Dieser Nutzungshinweis wurde automatisch auf Basis der AUTOSAR-Spezifikation generiert.

Implementer's Guide folgt (Komplexität I1)

function EcuM_Init [SWS_EcuM_02811] 📄 PDF

void EcuM_Init (void);

Initializes the ECU state manager and carries out the startup procedure. The function will never return (it calls StartOS)

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 0b36a0aa946f Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Service-Funktion EcuM_Init initialisiert den ECU State Manager und leitet den geordneten Startablauf des Steuergeräts ein ([SWS_EcuM_02811]). Sie wird über den Header EcuM.h mit der Service-ID 0x01 deklariert, nimmt keine Parameter entgegen und liefert keinen Rückgabewert ([SWS_EcuM_02811]). Formal als reentrant eingestuft, kehrt EcuM_Init nach dem Aufruf niemals zum Aufrufer zurück, da sie die Ausführung an das Betriebssystem übergibt, indem sie StartOS aufruft ([SWS_EcuM_02811]).

Im Rahmen ihrer Ausführung arbeitet die Funktion die definierte StartPreOS-Sequenz und deren Aktivitäten in der exakt vorgegebenen Reihenfolge ab ([SWS_EcuM_02411], [SWS_EcuM_02684]). Ein wesentlicher Bestandteil dieser Phase ist die Überprüfung der Konfigurationskonsistenz: Das Modul prüft innerhalb von EcuM_Init, ob das entsprechende Strukturfeld mit dem Wert von ECUM_CONFIGCONSISTENCY_HASH identisch ist ([SWS_EcuM_02798]).

Darüber hinaus steuert EcuM_Init die Initialisierung der Treiber auf Mehrkernsystemen ([SWS_EcuM_04145]). Die Funktion ruft auf jedem einzelnen Kern die Callouts EcuM_AL_DriverInitZero sowie EcuM_AL_DriverInitOne auf ([SWS_EcuM_04145]). Für die Callout-Implementierungen gilt die Vorgabe sicherzustellen, dass auf dem jeweils aktiven Kern ausschließlich diejenigen MCAL-Module initialisiert werden, die auch tatsächlich auf diesem Kern ausgeführt werden ([SWS_EcuM_04145]).

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR Classic R20-11 generiert.

Implementer's Guide folgt (Komplexität I2)

function EcuM_StartupTwo [SWS_EcuM_02838] 📄 PDF

void EcuM_StartupTwo (void);

This function implements the STARTUP II state.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 537ce9e5d889 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone und nicht-reentrante Funktion EcuM_StartupTwo implementiert den Zustand STARTUP II des ECU State Managers [SWS_EcuM_02838]. Die Schnittstelle wird über die Header-Datei EcuM.h deklariert und besitzt die Service-ID 0x1a [SWS_EcuM_02838]. Gemäß der Funktionssignatur void EcuM_StartupTwo(void) nimmt der Aufruf weder Eingabeparameter noch Ein-/Ausgabe- oder Ausgabeparameter entgegen und liefert keinen Rückgabewert an den Aufrufer zurück [SWS_EcuM_02838].

Wird das ECU-Manager-Modul durch die Funktion EcuM_StartupTwo aktiviert, führt es die Aktionen der StartPostOS-Sequenz aus [SWS_EcuM_02932].

Für die Integration bestehen wesentliche Vorgaben bezüglich des Aufrufkontexts und der Nebenläufigkeit: Die Funktion muss zwingend aus einem Task aufgerufen werden, der direkt als Konsequenz von StartOS gestartet wird [SWS_EcuM_02806]. Dies erfordert, dass der Aufruf von EcuM_StartupTwo entweder aus einem Autostart-Task heraus erfolgt oder aus einem Task, der explizit gestartet wird [SWS_EcuM_02806]. Da die Funktion als nicht-reentrant spezifiziert ist, darf kein gleichzeitiger oder mehrfacher Aufruf stattfinden [SWS_EcuM_02838].

Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function EcuM_Shutdown [SWS_EcuM_02812] 📄 PDF

void EcuM_Shutdown (void);

Typically called from the shutdown hook, this function takes over execution control and will carry out GO OFF II activities.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 06f5a6c81474 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Service-Funktion EcuM_Shutdown (Service-ID 0x02) wird über die Header-Datei EcuM.h bereitgestellt und übernimmt die Ausführungssteuerung zur Durchführung der Aktivitäten der Phase „GO OFF II“ [SWS_EcuM_02812]. Sie dient der abschließenden Terminierung des Abschaltprozesses [SWS_EcuM_02953].

Aufrufkontext und Semantik

Typischerweise wird die Funktion aus dem Shutdown-Hook aufgerufen [SWS_EcuM_02812]. Dieser Hook ist gemäß den Anforderungen explizit verpflichtet, EcuM_Shutdown aufzurufen, um den Abschaltvorgang zu beenden [SWS_EcuM_02953].

  • Signatur: void EcuM_Shutdown(void) mit Service-ID 0x02 [SWS_EcuM_02812].
  • Parameter: Es existieren weder Eingabe- noch Ausgabe- oder Ein-/Ausgabeparameter [SWS_EcuM_02812].
  • Rückgabewert: Die Schnittstelle liefert keinen Rückgabewert zurück [SWS_EcuM_02812].
  • Synchronität: Der Aufruf wird synchron ausgeführt [SWS_EcuM_02812].

Nebenläufigkeit und Kontrollfluss

In der Spezifikation ist EcuM_Shutdown als reentrant deklariert [SWS_EcuM_02812]. Für den Programmablauf gilt jedoch die strikte Anforderung, dass EcuM_Shutdown nicht zum Aufrufer zurückkehren darf [SWS_EcuM_02953]. Nach der Abarbeitung schaltet die Funktion das Steuergerät endgültig ab oder löst alternativ einen Reset aus [SWS_EcuM_02953].

Dieser Nutzungshinweis wurde automatisiert auf Basis der AUTOSAR-Spezifikation R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function EcuM_SetState [SWS_EcuM_04122] 📄 PDF

void EcuM_SetState (EcuM_StateType state);

Function called by BswM to notify about State Switch.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 6ccfd6ea170b Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Aufrufkontext

Die synchrone Funktion EcuM_SetState dient dem BswM dazu, dem EcuM einen Zustandswechsel mitzuteilen [SWS_EcuM_04122]. Als Eingabeparameter wird state vom Typ EcuM_StateType übergeben, welcher den durch den BswM vorgegebenen Zustand spezifiziert [SWS_EcuM_04122]. Die Funktion besitzt keinen Rückgabewert [SWS_EcuM_04122].

Funktionsweise und Zusammenspiel

Beim Aufruf setzt die Funktion den internen Zustand des EcuM auf den Wert des Parameters state [SWS_EcuM_04123]. Setzt der BswM auf diese Weise einen Zustand des EcuM, zeigt der EcuM den korrespondierenden Modus an die RTE an [SWS_EcuM_04116].

Fehlerbehandlung

Ist der übergebene Wert des Parameters state ungültig, verändert EcuM_SetState den EcuM-Zustand nicht [SWS_EcuM_04123]. Sofern das Development Error Reporting aktiviert ist, meldet die Funktion in diesem Fehlerfall zusätzlich den Fehler ECUM_E_STATE_PAR_OUT_OF_RANGE an das DET-Modul [SWS_EcuM_04123].

Nebenläufigkeit und Schnittstelle

Die Ausführung ist synchron und reentrant [SWS_EcuM_04122]. Der Dienst wird über die Header-Datei EcuM.h deklariert [SWS_EcuM_04122].

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR Classic R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function EcuM_RequestRUN [SWS_EcuM_04124] 📄 PDF

Std_ReturnType EcuM_RequestRUN (EcuM_UserType user);

Places a request for the RUN state. Requests can be placed by every user made known to the state manager at configuration time.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: edb1d4cba6be Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Die synchrone und reentrante Funktion EcuM_RequestRUN dient dazu, den RUN-Zustand beim ECU State Manager anzufordern [SWS_EcuM_04124]. Als Parameter wird über user vom Typ EcuM_UserType die Kennung der anfordernden Entität übergeben; berechtigt sind ausschließlich Benutzer, die dem Zustandsmanager bereits zur Konfigurationszeit bekannt gemacht wurden [SWS_EcuM_04124]. Die Funktion liefert E_OK zurück, wenn der EcuM die Anforderung akzeptiert hat, andernfalls E_NOT_OK [SWS_EcuM_04124]. Der Dienst ist über den Header EcuM.h deklariert [SWS_EcuM_04124].

Fehlerbehandlung und Einschränkungen

Anforderungen dürfen nicht verschachtelt werden: Ein einzelner Benutzer kann zu einem Zeitpunkt höchstens eine aktive RUN-Anforderung halten [SWS_EcuM_04125]. Erkennt EcuM_RequestRUN wiederholte oder doppelte Aufrufe durch denselben Benutzer, wird bei aktivierter Entwicklungserkennung der Fehlercode ECUM_E_MULTIPLE_RUN_REQUESTS an das DET gemeldet [SWS_EcuM_03024], [SWS_EcuM_04125].

Zusammenspiel

Jede mit EcuM_RequestRUN erfolgreich gesetzte Zustandsanforderung muss nach Abschluss der Aktivität wieder freigegeben werden. Hierfür steht der komplementäre, ebenfalls synchrone und reentrante Dienst EcuM_ReleaseRUN bereit, dem dieselbe Benutzer-ID übergeben wird [SWS_EcuM_04127].

Dieser Nutzungshinweis wurde automatisiert auf Basis der AUTOSAR-Spezifikation R20-11 generiert.

Implementer's Guide folgt (Komplexität I2)

function EcuM_ReleaseRUN [SWS_EcuM_04127] 📄 PDF

Std_ReturnType EcuM_ReleaseRUN (EcuM_UserType user);

Releases a RUN request previously done with a call to EcuM_RequestRUN. The service is intended for implementing AUTOSAR ports.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: f2acc7b3a714 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Die synchrone Funktion EcuM_ReleaseRUN (Service-ID 0x04) dient der Freigabe einer zuvor über EcuM_RequestRUN registrierten RUN-Zustandsanforderung [SWS_EcuM_04127]. Die Schnittstelle wird über den Header EcuM.h bereitgestellt und ist primär für die Implementierung von AUTOSAR-Ports vorgesehen [SWS_EcuM_04127]. Als Eingabeparameter erwartet die Funktion die Benutzerkennung user vom Typ EcuM_UserType, welche die freigebende Entität innerhalb des Moduls eindeutig identifiziert [SWS_EcuM_04127].

Der Rückgabewert vom Typ Std_ReturnType signalisiert mit E_OK, dass die Freigabeanforderung erfolgreich durch das Modul akzeptiert wurde [SWS_EcuM_04127]. Konnte die Freigabe nicht verarbeitet werden, gibt der Dienst den Fehlerwert E_NOT_OK zurück [SWS_EcuM_04127].

Fehlerbehandlung und Nebenläufigkeit

Spezifische Fehlercodes, Entwicklungsfehler (DET) oder Produktionsfehler (DEM) werden in der Spezifikation nicht aufgeführt; die Ablehnung einer Anforderung äußert sich ausschließlich über die Rückgabe von E_NOT_OK [SWS_EcuM_04127]. Es ist anzunehmen (Interpretation:), dass eine Rückgabe von E_NOT_OK vermutlich dann erfolgt, wenn für die angegebene Benutzer-ID keine aktive Anforderung vorliegt oder ein unzulässiger Parameterwert übergeben wurde. Frage Q-cbe9031cffe1be81 (offen)

Die Funktion ist als reentrant deklariert und darf somit in nebenläufigen Ausführungskontexten aufgerufen werden [SWS_EcuM_04127]. Als funktionale Reihenfolgebedingung setzt der Aufruf zwingend voraus, dass der entsprechende Benutzer zuvor den Zustand über EcuM_RequestRUN angefordert hat [SWS_EcuM_04127].

Zusammenspiel

Das Modul EcuM stellt diesen Dienst bereit, um über definierte Ports das Halten des RUN-Zustands zu beenden [SWS_EcuM_04127]. Für die RTE-Konfiguration und das Zusammenspiel mit dem lokalen RTE-Laufzeitverhalten definiert die Spezifikation das interne Verhalten des EcuStateManager mit mehreren nebenläufig ausführbaren Runnable Entities [SWS_EcuM_03018].

Dieser Text wurde von einer KI basierend auf der AUTOSAR-Spezifikation generiert.

Implementer's Guide folgt (Komplexität I1)

function EcuM_RequestPOST_RUN [SWS_EcuM_04128] 📄 PDF

Std_ReturnType EcuM_RequestPOST_RUN (EcuM_UserType user);

Places a request for the POST RUN state. Requests can be placed by every user made known to the state manager at configuration time. Requests for RUN and POST RUN must be tracked independently (in other words: two independent variables). The service is intended for implementing AUTOSAR ports.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 8517014c50a6 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Die synchrone Funktion EcuM_RequestPOST_RUN dient dem Anfordern des Zustands POST RUN beim ECU State Manager ([SWS_EcuM_04128]). Der Aufrufer identifiziert sich über den Parameter user, wobei jede anfordernde Entität dem Zustandsmanager bereits zur Konfigurationszeit bekannt gemacht worden sein muss ([SWS_EcuM_04128]). Der Dienst ist im Header EcuM.h deklariert, für die Implementierung von AUTOSAR-Ports vorgesehen und quittiert eine erfolgreiche Annahme mit E_OK bzw. eine Ablehnung mit E_NOT_OK ([SWS_EcuM_04128]).

Fehlerbehandlung

Sofern die Erkennung von Entwicklungsfehlern aktiviert ist, führt ein erneuter Aufruf durch denselben Benutzer dazu, dass EcuM_RequestPOST_RUN den Fehler ECUM_E_MULTIPLE_RUN_REQUESTS an das DET meldet ([SWS_EcuM_03025]). Interpretation: Im Fall solcher Mehrfachanforderungen oder bei ungültigen Benutzer-IDs dürfte der Dienst mit E_NOT_OK antworten ([SWS_EcuM_04128]). Frage Q-b5bbd7d5b53e76ba (offen)

Nebenläufigkeit und Zusammenspiel

Die Funktion ist reentrant ausgelegt ([SWS_EcuM_04128]). Im Modul müssen die Anforderungen für RUN und POST RUN strikt unabhängig voneinander über zwei eigenständige Variablen nachverfolgt werden ([SWS_EcuM_04128]). Jede über diesen Dienst registrierte Anforderung hält den POST-RUN-Zustand aktiv, bis sie explizit durch den komplementären Aufruf von EcuM_ReleasePOST_RUN wieder zurückgenommen wird ([SWS_EcuM_04129]).

Dieser Text wurde automatisch generiert. Alle fachlichen Inhalte basieren auf der AUTOSAR-Spezifikation.

Implementer's Guide folgt (Komplexität I2)

function EcuM_ReleasePOST_RUN [SWS_EcuM_04129] 📄 PDF

Std_ReturnType EcuM_ReleasePOST_RUN (EcuM_UserType user);

Releases a POST RUN request previously done with a call to EcuM_RequestPOST_RUN. The service is intended for implementing AUTOSAR ports.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 5beb0fd73cda Herkunft Offene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Semantik

Die synchrone und reentrante Funktion EcuM_ReleasePOST_RUN ([SWS_EcuM_04129]) dient der Freigabe einer zuvor mittels EcuM_RequestPOST_RUN gesetzten POST-RUN-Anforderung. Über den Eingabeparameter user vom Typ EcuM_UserType wird die Kennung der Entität übergeben, welche den POST-RUN-Status wieder freigibt. Die Schnittstelle ist über die Header-Datei EcuM.h verfügbar und primär für die Realisierung von AUTOSAR-Ports ausgelegt ([SWS_EcuM_04129]).

Rückgabewerte und Fehlerbehandlung

Die Funktion liefert den Status Std_ReturnType zurück ([SWS_EcuM_04129]):

  • E_OK: Die Freigabeanforderung wurde vom ECU State Manager erfolgreich akzeptiert.
  • E_NOT_OK: Die Freigabeanforderung wurde abgewiesen. Interpretation: Eine Abweisung mit E_NOT_OK dürfte vorliegen, wenn für den angegebenen Benutzer keine aktive Anforderung registriert war oder ein ungültiger Benutzerbezeichner übergeben wurde. Frage Q-67bd8594612defca (offen)

Nebenläufigkeit und Zusammenspiel

Der Dienst ist als reentrant spezifiziert ([SWS_EcuM_04129]), sodass zeitgleiche Aufrufe durch mehrere Entitäten zulässig sind. Die Funktion ist Bestandteil des internen Verhaltens des Moduls EcuM ([SWS_EcuM_03018]). Der Aufruf setzt logisch voraus, dass die Entität zuvor die Phase POST RUN angefordert hat ([SWS_EcuM_04129]). Interpretation: Typischerweise dürfte der Aufruf aus Software-Komponenten über RTE-Ports erfolgen, sobald deren Nachlaufaktivitäten vor dem Abschalten abgeschlossen sind. Frage Q-81f71656d4debb4a (offen)

Dieser Nutzungshinweis wurde automatisiert auf Basis des AUTOSAR-Spezifikationsstands R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function EcuM_SelectShutdownTarget [SWS_EcuM_02822] 📄 PDF

Std_ReturnType EcuM_SelectShutdownTarget (EcuM_ShutdownTargetType shutdownTarget, EcuM_ShutdownModeType shutdownMode);

EcuM_SelectShutdownTarget selects the shutdown target. EcuM_SelectShutdownTarget is part of the ECU Manager Module port interface.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: a39197138cfb Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Service-Funktion EcuM_SelectShutdownTarget dient der Auswahl des Shutdown-Ziels für das Steuergerät und wird über die Header-Datei EcuM.h sowie als Teil des Port-Interfaces des ECU-Manager-Moduls bereitgestellt [SWS_EcuM_02822]. Durch den Aufruf wird das interne Shutdown-Ziel auf den Wert des übergebenen Parameters shutdownTarget gesetzt [SWS_EcuM_00624].

Die Funktion erwartet zwei Eingabeparameter [SWS_EcuM_02822]:

  • shutdownTarget: Bestimmt das ausgewählte Ziel für das Herunterfahren [SWS_EcuM_02822].
  • shutdownMode: Enthält die Kennung eines Sleep-Modus (wenn das Ziel ECUM_SHUTDOWN_TARGET_SLEEP ist) oder eines Reset-Mechanismus (wenn das Ziel ECUM_SHUTDOWN_TARGET_RESET ist) gemäß Konfiguration [SWS_EcuM_02822].

Der Aufruf stößt keine unmittelbaren Einrichtungs- oder Ausführungsaktivitäten (Setup) an, sondern speichert die Werte lediglich für die spätere Verwendung in der Phase SHUTDOWN oder SLEEP [SWS_EcuM_02585].

Hinsichtlich der Nebenläufigkeit ist die Funktion reentrant spezifiziert [SWS_EcuM_02822]. Im RTE-Internal-Behavior des ECU State Managers ist die korrespondierende Runnable Entity SelectShutdownTarget mit canbeInvokedConcurrently = TRUE deklariert [SWS_EcuM_03018], wodurch parallele Aufrufe zulässig sind.

Der Rückgabewert vom Typ Std_ReturnType signalisiert mit E_OK, dass das neue Shutdown-Ziel erfolgreich gesetzt wurde, und mit E_NOT_OK, dass die Übernahme fehlschlug [SWS_EcuM_02822]. Konkrete Fehlerursachen für E_NOT_OK oder DET-Meldungen nennt die Spezifikation an dieser Stelle nicht; vermutlich führen unzulässige oder nicht konfigurierte Kombinationen von Ziel und Modus zur Ablehnung. Frage Q-e916f3a6ac0bf47e (offen)

Dieser Text wurde von einer KI generiert und basiert auf den Spezifikationen des Release R20-11.

Implementer's Guide folgt (Komplexität I2)

function EcuM_SelectShutdownCause [SWS_EcuM_04050] 📄 PDF

Std_ReturnType EcuM_SelectShutdownCause (EcuM_ShutdownCauseType target);

EcuM_SelectShutdownCause elects the cause for a shutdown. EcuM_SelectShutdownCause is part of the ECU Manager Module port interface.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 518672a867f6 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Funktion EcuM_SelectShutdownCause dient der Auswahl der Ursache für ein Herunterfahren des Steuergeräts und ist über die Header-Datei EcuM.h verfügbar [SWS_EcuM_04050].

Verwendung und Semantik:

  • Parameter: Der Eingangsparameter target vom Typ EcuM_ShutdownCauseType übergibt die ausgewählte Abschaltursache [SWS_EcuM_04050].
  • Rückgabewert: Ein Rückgabewert vom Typ Std_ReturnType signalisiert mit E_OK, dass die neue Ursache erfolgreich gesetzt wurde, und mit E_NOT_OK, dass das Setzen fehlgeschlagen ist [SWS_EcuM_04050].
  • Ausführung: Der Dienst arbeitet synchron unter der Service-ID 0x1b und ist reentrant spezifiziert [SWS_EcuM_04050].

Nebenläufigkeit und Zusammenspiel:

Die Funktion ist Teil des Port-Interfaces des Moduls ECU Manager [SWS_EcuM_04050]. Für die Konfiguration der lokalen RTE ist im internen Verhalten EcuStateManager die Runnable Entity SelectShutdownCause mit dem Symbol EcuM_SelectShutdownCause definiert, wobei die Eigenschaft canbeInvokedConcurrently = TRUE vergeben ist [SWS_EcuM_03018].

Fehlerbehandlung:

Im Spezifikationsumfang sind keine spezifischen DET- oder DEM-Meldungen ausgewiesen; Fehlerzustände beim Setzen der Ursache werden ausschließlich über den Rückgabewert E_NOT_OK angezeigt [SWS_EcuM_04050].

Dieser Nutzungshinweis wurde automatisiert erstellt und basiert auf den Spezifikationsvorgaben zu AUTOSAR Classic Release R20-11.

Implementer's Guide folgt (Komplexität I1)

function EcuM_GetShutdownCause [SWS_EcuM_04051] 📄 PDF

Std_ReturnType EcuM_GetShutdownCause (EcuM_ShutdownCauseType* shutdownCause);

EcuM_GetShutdownCause returns the selected shutdown cause as set by EcuM_Select ShutdownCause. EcuM_GetShutdownCause is part of the ECU Manager Module port interface.

function EcuM_ClearWakeupEvent [SWS_EcuM_02828] 📄 PDF

void EcuM_ClearWakeupEvent (EcuM_WakeupSourceType sources);

Clears wakeup events.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 8efe1e7a60e8 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Service-Funktion EcuM_ClearWakeupEvent (Service-ID 0x16) dient dem Zurücksetzen von Wakeup-Ereignissen und steht über die Header-Datei EcuM.h zur Verfügung [SWS_EcuM_02828]. Als Parameter nimmt sie die Bitmaske sources vom Typ EcuM_WakeupSourceType entgegen und besitzt keinen Rückgabewert [SWS_EcuM_02828].

Beim Aufruf werden alle in sources als Bit gesetzten anstehenden Ereignisse aus drei internen Variablen des Moduls gelöscht [SWS_EcuM_02683]:

  • aus der internen Variablen für anstehende Wakeup-Ereignisse (pending wakeup events),
  • aus der internen Variablen für validierte Wakeup-Ereignisse (validated events) sowie
  • aus der internen Variablen für abgelaufene Wakeup-Ereignisse (expired events) [SWS_EcuM_02683].

Hinsichtlich des Aufrufkontexts darf EcuM_ClearWakeupEvent flexibel aus dem Interrupt-Kontext, aus dem regulären OS-Kontext sowie aus einem OS-freien Kontext aufgerufen werden [SWS_EcuM_02807]. Gleichzeitig ist die Funktion jedoch verbindlich als nicht reentrant (Non-Reentrant) und nicht unterbrechbar (Non-Interruptible) spezifiziert [SWS_EcuM_02828]. Interpretation: Da die Funktion in unterschiedlichen Kontexten zulässig, aber nicht unterbrechbar ist, dürfte der Integrator oder Aufrufer organisatorisch sicherstellen müssen, dass keine gleichzeitigen oder einander unterbrechenden Aufrufe stattfinden. Frage Q-71a4b1b218505a1c (offen)

Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation R20-11 generiert.

function EcuM_AbortWakeupAlarm [SWS_EcuM_04061] 📄 PDF

Std_ReturnType EcuM_AbortWakeupAlarm (EcuM_UserType user);

Ecum_AbortWakeupAlarm aborts the wakeup alarm previously set by this user. EcuM_Abort WakeupAlarm is part of the ECU Manager Module port interface.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: a619899b3b6a Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Funktion EcuM_AbortWakeupAlarm dient dem Abbruch eines zuvor durch einen Benutzer gesetzten Wakeup-Alarms [SWS_EcuM_04061]. Die Schnittstelle ist über die Header-Datei EcuM.h verfügbar und bildet einen Bestandteil der Port-Schnittstelle des ECU-Manager-Moduls [SWS_EcuM_04061].

Parameter und Rückgabewerte

  • user (In): Kennung des Benutzers vom Typ EcuM_UserType, welcher den Wakeup-Alarm stornieren möchte [SWS_EcuM_04061]. Ein-/Ausgangs- oder reine Ausgangsparameter existieren nicht [SWS_EcuM_04061].
  • E_OK: Der Dienst wurde erfolgreich ausgeführt und der Alarm storniert [SWS_EcuM_04061].
  • ECUM_E_NOT_ACTIVE: Es wurde kein aktiver Alarm gefunden, welcher dem übergebenen Benutzer gehört [SWS_EcuM_04061].
  • E_NOT_OK: Die Ausführung des Dienstes ist fehlgeschlagen [SWS_EcuM_04061].

Nebenläufigkeit und Zusammenspiel

Die Funktion besitzt die Service-ID 0x24 und ist reentrant spezifiziert [SWS_EcuM_04061]. Aufrufe können somit für unterschiedliche Benutzer nebenläufig erfolgen. Das interne Verhalten des ECU-Managers definiert die ausführbaren Einheiten zur Konfiguration der lokalen RTE [SWS_EcuM_03018]; als Teil des Modul-Port-Interfaces dürfte der Aufruf typischerweise durch Software-Komponenten über die RTE initiiert werden. Frage Q-2c8f004d9f00bbd3 (offen)

Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function EcuM_GetCurrentTime [SWS_EcuM_04062] 📄 PDF

Std_ReturnType EcuM_GetCurrentTime (EcuM_TimeType* time);

EcuM_GetCurrentTime returns the current value of the EcuM clock (i.e. the time since battery connect). EcuM_GetCurrentTime is part of the ECU Manager Module port interface.

function EcuM_GetWakeupTime [SWS_EcuM_04063] 📄 PDF

Std_ReturnType EcuM_GetWakeupTime (EcuM_TimeType* time);

EcuM_GetWakeupTime returns the current value of the master alarm clock (the minimum absolute time of all user alarm clocks). EcuM_GetWakeupTime is part of the ECU Manager Module port interface.

function EcuM_SetClock [SWS_EcuM_04064] 📄 PDF

Std_ReturnType EcuM_SetClock (EcuM_UserType user, EcuM_TimeType time);

EcuM_SetClock sets the EcuM clock time to the provided value. This API is useful for testing the alarm services; Alarms that take days to expire can be tested. EcuM_SetClock is part of the ECU Manager Module port interface.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: a5821c5da6f5 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone und reentrante Funktion EcuM_SetClock dient gemäß [SWS_EcuM_04064] dazu, die interne Uhrzeit des ECU State Managers auf einen vorgegebenen Wert zu setzen. Als Teil des Port-Interfaces des ECU Managers kann die Funktion über die Header-Datei EcuM.h eingebunden und aufgerufen werden [SWS_EcuM_04064].

Haupteinsatzzweck der Schnittstelle ist das Testen von Alarmdiensten: Alarme, deren regulärer Ablauf Tage in Anspruch nehmen würde, können durch gezieltes Setzen der Uhrzeit im Testbetrieb verifiziert werden [SWS_EcuM_04064]. Hierbei werden zwei Eingabeparameter übergeben:

  • user (Typ EcuM_UserType): Kennung des Aufrufers bzw. Nutzers, der die Uhrzeit setzen möchte.
  • time (Typ EcuM_TimeType): Absolute Zeitangabe in Sekunden seit dem Anschließen der Batterie (Battery Connect).

Als Rückgabewert liefert der Dienst den Status Std_ReturnType mit E_OK bei erfolgreicher Ausführung oder E_NOT_OK im Fehlerfall [SWS_EcuM_04064]. Konkrete Fehlerursachen oder DET-Meldungen sind an der Schnittstelle nicht spezifiziert; vermutlich führt die Übergabe unberechtigter Nutzerkennungen oder ungültiger Zeitwerte zur Rückgabe von E_NOT_OK. Frage Q-248768580c0309e8 (offen)

Hinsichtlich des internen Modulverhaltens und der RTE-Konfiguration bindet sich die Funktion in die Struktur der Runnable Entities des EcuStateManager ein [SWS_EcuM_03018].

Dieser Text wurde von einer KI generiert und dient der technischen Orientierung.

Implementer's Guide folgt (Komplexität I1)

function EcuM_SelectBootTarget [SWS_EcuM_02835] 📄 PDF

Std_ReturnType EcuM_SelectBootTarget (EcuM_BootTargetType target);

EcuM_SelectBootTarget selects a boot target. EcuM_SelectBootTarget is part of the ECU Manager Module port interface.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 3afaf8f6214a Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Funktion EcuM_SelectBootTarget dient der Auswahl eines Boot-Targets für das Steuergerät und ist Teil des Port-Interfaces des ECU Managers sowie über den Header EcuM.h verfügbar [SWS_EcuM_02835]. Das gewünschte Ziel wird über den Eingabeparameter target vom Typ EcuM_BootTargetType übergeben [SWS_EcuM_02835].

Als Rückgabewert signalisiert die Funktion E_OK, wenn das neue Boot-Target vom EcuM akzeptiert wurde, andernfalls E_NOT_OK [SWS_EcuM_02835]. Die Implementierung muss das gewählte Ziel auf eine Weise abspeichern, die mit dem Bootloader kompatibel ist [SWS_EcuM_02247]. Der aktuell gesetzte Wert kann über den komplementären Dienst EcuM_GetBootTarget abgefragt werden [SWS_EcuM_02836].

Die Funktion ist als reentrant spezifiziert [SWS_EcuM_02835]; im Rahmen des internen Verhaltens für die RTE-Konfiguration ist die Runnable Entity SelectBootTarget mit canbeInvokedConcurrently = TRUE deklariert [SWS_EcuM_03018]. Einschränkend gilt, dass dieser Dienst ausschließlich für Software-Komponenten (SW-Cs) mit Bezug zu Diagnose bzw. Boot-Management vorgesehen ist und vom konkret eingesetzten Bootloader abhängen kann [SWS_EcuM_03000].

Dieser Text wurde von einer KI generiert und basiert auf den Anforderungen der AUTOSAR-Spezifikation.

Implementer's Guide folgt (Komplexität I1)

function EcuM_GetBootTarget [SWS_EcuM_02836] 📄 PDF

Std_ReturnType EcuM_GetBootTarget (EcuM_BootTargetType* target);

EcuM_GetBootTarget returns the current boot target - see EcuM_SelectBootTarget. EcuM_Get BootTarget is part of the ECU Manager Module port interface.

function EcuM_ValidateWakeupEvent [SWS_EcuM_02829] 📄 PDF

void EcuM_ValidateWakeupEvent (EcuM_WakeupSourceType sources);

After wakeup, the ECU State Manager will stop the process during the WAKEUP VALIDATION state/sequence to wait for validation of the wakeup event.This API service is used to indicate to the ECU Manager module that the wakeup events indicated in the sources parameter have been validated.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: f79b59c62af4 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

EcuM_ValidateWakeupEvent ist ein synchroner Dienst (Service-ID 0x14), der dem ECU Manager signalisiert, dass die im Parameter sources übergebenen Weckquellen erfolgreich validiert wurden ([SWS_EcuM_02829]). Nach dem Aufwachen wartet der ECU State Manager in der Validierungssequenz auf diese Bestätigung. Beim Aufruf stoppt die Funktion den laufenden Timeout-Timer der Validierung ([SWS_EcuM_02710]) und trägt die übergebenen Ereignisse per ODER-Verknüpfung der Bitmaske in die interne Variable für validierte Weckereignisse ein ([SWS_EcuM_04078]).

Die Funktion ist reentrant ([SWS_EcuM_02829]) und darf sowohl aus dem Task- als auch aus dem Interrupt-Kontext aufgerufen werden ([SWS_EcuM_02345]). Befindet sich der ECU Manager im Zustand RUN, bleibt der Aufruf für alle Weckquellen ohne Wirkung, sofern es sich nicht um Kommunikationskanäle handelt ([SWS_EcuM_02790]). Für Quellen, die einem Kommunikationskanal zugeordnet sind, entfaltet der Dienst dagegen in jeder Phase der ECU uneingeschränkte Wirkung ([SWS_EcuM_02791]).

Im Gesamtablauf interagiert der Dienst eng mit der Weckvalidierung und dem Kommunikationsmanagement:

  • Validierungsprüfung: Der ECU Manager ruft zur Prüfung den Callout EcuM_CheckValidation auf; wird ein gültiges Weckereignis erkannt, erfolgt die Rückmeldung über EcuM_ValidateWakeupEvent ([SWS_EcuM_02925]).
  • Konfiguration: Ist für eine Weckquelle kein Validierungsprotokoll konfiguriert (EcuMValidationTimeout), impliziert bereits EcuM_SetWakeupEvent den Aufruf von EcuM_ValidateWakeupEvent ([SWS_EcuM_02566]).
  • Benachrichtigung: Ist für die Weckquelle EcuMComMChannelRef konfiguriert, ruft der Dienst ComM_EcuM_WakeUpIndication auf ([SWS_EcuM_02645]). Bei konfigurierter EcuMComMPNCRef wird zusätzlich für jeden referenzierten PNC ComM_EcuM_PNCWakeUpIndication ausgelöst ([SWS_EcuM_04140]).

Dieser Nutzungshinweis wurde von einer KI auf Basis der Spezifikation AUTOSAR Classic R20-11 generiert.

Implementer's Guide folgt (Komplexität I2)

function EcuM_ErrorHook [SWS_EcuM_02904] 📄 PDF

void EcuM_ErrorHook (uint16 reason);

The ECU State Manager will call the error hook if the error codes "ECUM_E_RAM_CHECK_ FAILED" or "ECUM_E_CONFIGURATION_DATA_INCONSISTENT" occur. In this situation it is not possible to continue processing and the ECU must be stopped. The integrator may choose the modality how the ECU is stopped, i.e. reset, halt, restart, safe state etc.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: a96df00e2811 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone und nicht-reentrante Callback-Funktion EcuM_ErrorHook (bereitgestellt über EcuM_Externals.h) wird vom ECU State Manager aufgerufen, sobald schwerwiegende Fehler auftreten, die eine reguläre Weiterverarbeitung unmöglich machen und das Anhalten des Steuergeräts erfordern [SWS_EcuM_02904]. Über den Übergabeparameter reason wird die spezifische Fehlerursache übermittelt [SWS_EcuM_02904].

Zu den definierten Fehlerursachen zählen ECUM_E_RAM_CHECK_FAILED und ECUM_E_CONFIGURATION_DATA_INCONSISTENT [SWS_EcuM_02904]. Schlägt die RAM-Prüfung beim Wakeup fehl, ist der ECU Manager verpflichtet, EcuM_ErrorHook mit dem Grund ECUM_E_RAM_CHECK_FAILED auszulösen [SWS_EcuM_02987]. Zudem erfolgt die Fehlerbehandlung über diesen Hook, wenn ein Aufruf einer Betriebssystemfunktion fehlschlägt und keine andere Fehlerreaktion spezifiziert ist; der EcuM verbleibt in diesem Fall im bisherigen Zustand [SWS_EcuM_04139].

Für den Systemintegrator gelten bei der Implementierung folgende Rahmenbedingungen:

  • Stopp-Modalität des Steuergeräts: Der Integrator wählt die Art und Weise, wie die ECU stillgelegt wird (z. B. Reset, Halt, Neustart oder sicherer Zustand) [SWS_EcuM_02904]. Interpretation: Bei drastischen Maßnahmen wie einem Reset oder Halt dürfte die Funktion typischerweise nicht mehr zur regulären Ablaufsteuerung zurückkehren. Frage Q-59c23e3a2569f670 (offen)
  • Fehlermeldung an das DEM: Es liegt im Ermessen des Integrators, ob der Fehler an das DEM weitergeleitet wird, sofern sichergestellt ist, dass das DEM keine beschädigten NVRAM-Blöcke beschreibt [SWS_EcuM_02987].

Dieser Text wurde durch eine KI erstellt und basiert auf der Spezifikation AUTOSAR CP R20-11.

Implementer's Guide folgt (Komplexität I1)

function EcuM_AL_SetProgrammableInterrupts [SWS_EcuM_04085] 📄 PDF

void EcuM_AL_SetProgrammableInterrupts (void);

If the configuration parameter EcuMSetProgrammableInterrupts is set to true, this callout Ecu M_AL_SetProgrammableInterrupts is executed and shall set the interrupts on ECUs with programmable interrupts.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 166191cb51d3 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Aufrufbedingungen

Die Callout-Funktion EcuM_AL_SetProgrammableInterrupts wird vom Modul ECU State Manager aufgerufen, um auf Steuergeräten mit programmierbaren Interrupt-Controllern die entsprechenden Interrupts zu konfigurieren und zu setzen [SWS_EcuM_04085]. Die Ausführung dieses Callouts erfolgt jedoch nur dann, wenn der Konfigurationsparameter EcuMSetProgrammableInterrupts auf den Wert true festgelegt ist [SWS_EcuM_04085]. Ist dieser Parameter nicht aktiviert, unterbleibt der Aufruf [SWS_EcuM_04085]. Für Integratoren und Plattformtreiber wird die Deklaration der Schnittstelle über die Header-Datei EcuM_Externals.h bereitgestellt [SWS_EcuM_04085].

Die Schnittstelle besitzt die Syntax void EcuM_AL_SetProgrammableInterrupts (void) und ist der Service-ID 0x4A zugeordnet [SWS_EcuM_04085]. Der Aufruf erfolgt vollständig parameterlos: Es werden weder Eingangs-, Ein-/Ausgangs- noch Ausgangsparameter übergeben, und die Funktion liefert keinen Rückgabewert an das aufrufende Modul zurück [SWS_EcuM_04085].

Nebenläufigkeit und Einschränkungen

Für EcuM_AL_SetProgrammableInterrupts ist in der Spezifikation ein asynchrones Ausführungsverhalten (Asynchronous) festgelegt [SWS_EcuM_04085]. In Bezug auf die Nebenläufigkeit ist die Funktion als nicht reentrant (Non Reentrant) klassifiziert [SWS_EcuM_04085]. Das bedeutet für die Integration, dass parallele oder verschachtelte Aufrufe der Schnittstelle unzulässig sind und die interruptbezogene Konfiguration ohne gleichzeitige Wiedereintritte ablaufen muss [SWS_EcuM_04085].

Dieser Nutzungshinweis wurde automatisiert auf Basis der AUTOSAR-Spezifikation erstellt.

function EcuM_AL_DriverInitZero [SWS_EcuM_02905] 📄 PDF

void EcuM_AL_DriverInitZero (void);

This callout shall provide driver initialization and other hardware-related startup activities for loading the post-build configuration data. Beware: Here only pre-compile and link-time configurable modules may be used.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 5df1108381d2 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Die Callout-Funktion EcuM_AL_DriverInitZero (Service-ID 0x31) wird synchron aufgerufen, besitzt weder Parameter noch einen Rückgabewert und ist nicht reentrant [SWS_EcuM_02905]. Deklariert ist sie über den Header EcuM_Externals.h [SWS_EcuM_02905]. Die Funktion dient dazu, frühe Treiberinitialisierungen sowie grundlegende hardwarebezogene Startaktivitäten bereitzustellen, die zwingend notwendig sind, um nachfolgend die Post-Build-Konfigurationsdaten laden zu können [SWS_EcuM_02905].

Einschränkungen und Mehrkernbetrieb

Für die Implementierung und Ausführung gelten spezifische Vorgaben und Restriktionen:

  • Konfigurationsklassen: Zu diesem frühen Zeitpunkt dürfen ausschließlich Module verwendet werden, die als Pre-Compile oder Link-Time konfigurierbar sind [SWS_EcuM_02905]. Post-Build-konfigurierbare Treiber stehen hier noch nicht zur Verfügung.
  • Aufrufkontext: Die Funktion wird durch EcuM_Init auf jedem Core des Systems aufgerufen [SWS_EcuM_04145].
  • Core-spezifische Initialisierung: Die Implementierung des Callouts muss sicherstellen, dass auf dem aktuell aktiven Core nur diejenigen MCAL-Module initialisiert werden, die tatsächlich auf diesem spezifischen Core ausgeführt werden [SWS_EcuM_04145].

Rückgabewerte, spezifische Fehlercodes oder Benachrichtigungen über DET oder DEM sind für diesen Callout nicht definiert [SWS_EcuM_02905].

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation von AUTOSAR Release R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function EcuM_DeterminePbConfiguration [SWS_EcuM_02906] 📄 PDF

const EcuM_ConfigType* EcuM_DeterminePbConfiguration (void);

This callout should evaluate some condition, like port pin or NVRAM value, to determine which post-build configuration shall be used in the remainder of the startup process. It shall load this configuration data into a piece of memory that is accessible by all BSW modules and shall return a pointer to the EcuM post-build configuration as a base for all BSW module post-build configrations.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 8491e826e02d Herkunft Offene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion EcuM_DeterminePbConfiguration ([SWS_EcuM_02906]) ist ein synchroner Callout des ECU State Managers, der über die Header-Datei EcuM_Externals.h bereitgestellt wird und die Service-ID 0x32 besitzt. Die Schnittstelle besitzt keine Eingangs-, Ausgangs- oder Ein-/Ausgangsparameter ([SWS_EcuM_02906]). Ihr zentraler Zweck besteht darin, während des Hochlaufprozesses anhand von Hardware- oder Speicherbedingungen festzulegen, welcher Post-Build-Konfigurationsdatensatz für den weiteren Verlauf des Systemstarts herangezogen werden soll ([SWS_EcuM_02906]).

Zur Festlegung der Konfiguration soll der Callout externe oder residente Kriterien wie den Status eines Port-Pins oder einen Wert im NVRAM auswerten ([SWS_EcuM_02906]). Anschließend muss die Funktion diese Konfigurationsdaten in ein Speichersegment laden, auf das sämtliche BSW-Module zugreifen können ([SWS_EcuM_02906]). Als Rückgabewert liefert sie einen Zeiger vom Typ const EcuM_ConfigType* auf die EcuM-Post-Build-Konfiguration zurück ([SWS_EcuM_02906]). Dieser Zeiger bildet die gemeinsame Ausgangsbasis für die gesamte BSW, da die Struktur Zeiger auf die jeweiligen Post-Build-Konfigurationen aller übrigen BSW-Module enthält ([SWS_EcuM_02906]).

Hinsichtlich des Aufrufverhaltens ist die Funktion als synchron und nicht reentrant (Non Reentrant) spezifiziert ([SWS_EcuM_02906]). Spezifische Fehlercodes, besondere Fehlerrückgabewerte sowie Schnittstellen zu DET oder DEM sind für diesen Callout nicht definiert ([SWS_EcuM_02906]). Es dürfte daher als Interpretation der Vorgaben gelten, dass eine anwendungsspezifische Callout-Implementierung Fehlerzustände eigenständig behandeln muss, da das Fehlen eines gültigen Konfigurationszeigers vermutlich das geordnete Hochfahren der abhängigen BSW-Module verhindern würde. Frage Q-b9487647fb39a2e2 (offen)

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function EcuM_AL_DriverInitOne [SWS_EcuM_02907] 📄 PDF

void EcuM_AL_DriverInitOne (void);

This callout shall provide driver initialization and other hardware-related startup activities in case of a power on reset.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 1a4bc344c682 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Semantik

Die Funktion EcuM_AL_DriverInitOne ist eine Callout-Funktion des ECU-Zustands-Managers (EcuM), die über die Header-Datei EcuM_Externals.h bereitgestellt wird [SWS_EcuM_02907]. Ihre primäre Aufgabe besteht darin, im Fall eines Power-on-Resets die Initialisierung von Treibern sowie weitere hardwarebezogene Startaktivitäten der Steuereinheit durchzuführen [SWS_EcuM_02907]. Da es sich um einen Callout handelt, dürfte die konkrete Implementierung der Hardware- und Treiberinitialisierung durch den jeweiligen Systemintegrator erfolgen. Frage Q-e22baf2fa31cf075 (offen)

Die Schnittstelle besitzt die C-Signatur void EcuM_AL_DriverInitOne (void) und ist der Service-ID 0x33 zugeordnet [SWS_EcuM_02907]. Sie akzeptiert keinerlei Eingangsparameter und liefert auch keinen Rückgabewert an den Aufrufer zurück [SWS_EcuM_02907].

Nebenläufigkeit und Einschränkungen

Für den Aufruf und das Laufzeitverhalten gelten nach [SWS_EcuM_02907] folgende Randbedingungen:

  • Synchronität: Die Ausführung erfolgt synchron (Synchronous), sodass der Aufrufer auf den Abschluss der Startaktivitäten wartet.
  • Reentranz: Die Funktion ist als nicht reentrant (Non Reentrant) definiert; ein gleichzeitiger oder unterbrechender Mehrfachaufruf ist unzulässig.
  • Aufrufkontext: Die Aktivierung ist ausschließlich für die Initialisierungsphase unmittelbar nach einem Power-on-Reset spezifiziert.

Fehlerbehandlung

Da EcuM_AL_DriverInitOne den Rückgabetyp void aufweist, existiert auf Schnittstellenebene keine direkte Rückmeldung über Erfolg oder Fehler der Initialisierung [SWS_EcuM_02907]. Spezifische Fehlercodes, DET- oder DEM-Meldungen sind im vorliegenden Spezifikationsumfang für diesen Callout nicht definiert.

Dieser Text wurde von einer KI erstellt und basiert auf der AUTOSAR-Spezifikation R20-11.

Implementer's Guide folgt (Komplexität I1)

function EcuM_LoopDetection [SWS_EcuM_04137] 📄 PDF

void EcuM_LoopDetection (void);

If the configuration parameter EcuMResetLoopDetection is set to true, this callout EcuM_Loop Detection is called on every startup.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: e51873f736db Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion EcuM_LoopDetection ist ein Callout des ECU State Managers mit der Service-ID 0x4B, der über die Header-Datei EcuM_Externals.h bereitgestellt wird [SWS_EcuM_04137].

Verwendung und Aufrufkontext

Sofern der Konfigurationsparameter EcuMResetLoopDetection auf true gesetzt ist, wird dieser Callout bei jedem Hochlauf (Startup) synchron aufgerufen [SWS_EcuM_04137]. Die Funktion besitzt weder Eingabe-, Ein-/Ausgabe- noch Ausgabeparameter und liefert keinen Rückgabewert (Signatur: void EcuM_LoopDetection (void)) [SWS_EcuM_04137].

Nebenläufigkeit und Einschränkungen

Die Ausführung von EcuM_LoopDetection ist als synchron und nicht reentrant (Non Reentrant) spezifiziert [SWS_EcuM_04137]. Da es sich um einen Callout handelt, obliegt die konkrete Implementierung der Schleifenerkennung typischerweise dem Integrator oder Anwender, um wiederholte Reset-Schleifen beim Systemstart zu erfassen.

Dieser Nutzungshinweis wurde automatisch generiert basierend auf den AUTOSAR-Spezifikationen.

Implementer's Guide folgt (Komplexität I1)

function EcuM_OnGoOffOne [SWS_EcuM_02916] 📄 PDF

void EcuM_OnGoOffOne (void);

This call allows the system designer to notify that the GO OFF I state is about to be entered.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: ee988344d1c4 Herkunft Offene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Die Funktion EcuM_OnGoOffOne dient dazu, das Erreichen des Systemzustands GO OFF I anzukündigen und dem Systemdesigner die Möglichkeit zu geben, unmittelbar vor dem Wechsel entsprechende Maßnahmen zu ergreifen [SWS_EcuM_02916]. Die Funktion wird synchron ausgeführt, erwartet keine Übergabeparameter (weder in noch inout) und liefert keinen Rückgabewert (void) [SWS_EcuM_02916]. Da die Schnittstelle über die Header-Datei EcuM_Externals.h deklariert wird, dürfte es sich nachvollziehbar um eine anwenderspezifische Callout-Funktion handeln, die im Integrationscode implementiert wird [SWS_EcuM_02916]. Frage Q-93de53c47a5a6142 (offen)

Fehlerbehandlung

In der Spezifikation zu EcuM_OnGoOffOne sind weder Entwicklungsfehler (DET) noch Produktionsfehler (DEM) oder spezifische Fehlerrückgabewerte aufgeführt [SWS_EcuM_02916]. Daraus lässt sich schließen, dass der Aufrufer kein standardisiertes Fehlermanagement erwartet und etwaige Ausnahmefälle innerhalb der anwenderspezifischen Implementierung autonom behandelt werden müssen [SWS_EcuM_02916].

Nebenläufigkeit und Einschränkungen

Für den Aufrufkontext und das Laufzeitverhalten sind folgende Eigenschaften festgelegt [SWS_EcuM_02916]:

  • Reentranz: Die Funktion ist als nicht reentrant (Non Reentrant) spezifiziert und darf keinesfalls parallel oder verschachtelt aufgerufen werden [SWS_EcuM_02916].
  • Synchronizität: Die Semantik ist strikt synchron (Synchronous), sodass der Aufrufer auf die vollständige Rückkehr der Funktion wartet [SWS_EcuM_02916].
  • Service-ID: Der Dienst wird intern durch den hexadezimalen Bezeichner 0x3C repräsentiert [SWS_EcuM_02916].

Aufgrund des synchronen Verhaltens und des bevorstehenden Wechsels in den Zustand GO OFF I ist anzunehmen, dass blockierende Operationen vermieden werden sollten, um den Abschalt- bzw. Übergangsprozess nicht unzulässig zu verzögern [SWS_EcuM_02916]. Frage Q-93f5e23c581f0c38 (offen)

Dieser Nutzungshinweis wurde von einer KI auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function EcuM_OnGoOffTwo [SWS_EcuM_02917] 📄 PDF

void EcuM_OnGoOffTwo (void);

This call allows the system designer to notify that the GO OFF II state is about to be entered.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: e613bc195292 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Funktion EcuM_OnGoOffTwo dient laut Spezifikation dazu, dem Systemdesigner die Benachrichtigung zu ermöglichen, dass der Zustand GO OFF II unmittelbar bevorsteht [SWS_EcuM_02917]. Der Aufruf erfolgt parameterlos ohne In-, Inout- oder Out-Parameter und liefert keinen Rückgabewert an den Aufrufer zurück [SWS_EcuM_02917].

Hinsichtlich des Ausführungskontexts und der Nebenläufigkeit ist die Schnittstelle mit der Service-ID 0x3D versehen und als nicht reentrant (Non Reentrant) spezifiziert [SWS_EcuM_02917]. Sie wird über den Header EcuM_Externals.h bereitgestellt [SWS_EcuM_02917]. Interpretation: Da die Deklaration in EcuM_Externals.h liegt und der Benachrichtigung des Systemdesigners dient, dürfte die Funktion als synchroner Callout des Steuergerätemanagements konzipiert sein, der vor dem Wechsel in den Zustand GO OFF II aufgerufen wird. Frage Q-bb0ae6e4632de827 (offen)

Aufgrund der Eigenschaft als nicht reentrante Schnittstelle darf der Aufruf nicht parallel oder unterbrechend wiederholt werden [SWS_EcuM_02917]. Spezifische Fehlercodes, Rückmeldungen an DET oder DEM sowie gesonderte Fehlerbehandlungsmechanismen sind im Spezifikationsumfang nicht definiert [SWS_EcuM_02917].

Dieser Text wurde von einer KI auf Basis der Spezifikation R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function EcuM_AL_SwitchOff [SWS_EcuM_02920] 📄 PDF

void EcuM_AL_SwitchOff (void);

This callout shall take the code for shutting off the power supply of the ECU. If the ECU cannot unpower itself, a reset may be an adequate reaction.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 0b4004b6930f Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Die Callout-Funktion EcuM_AL_SwitchOff ist Teil des Moduls ECU State Manager (EcuM) und dient dazu, den anwenderspezifischen Code für das Abschalten der Spannungsversorgung des Steuergeräts aufzunehmen [SWS_EcuM_02920]. Die Schnittstelle ist synchron definiert, besitzt die Service-ID 0x3E und wird über die Header-Datei EcuM_Externals.h bereitgestellt [SWS_EcuM_02920].

Gemäß Spezifikation nimmt die Funktion weder Eingangs-, Ein-/Ausgangs- noch Ausgangsparameter entgegen und besitzt keinen Rückgabewert (void) [SWS_EcuM_02920]. Kann die Hardware des Steuergeräts sich nicht selbstständig stromlos schalten, sieht die Spezifikation vor, dass stattdessen das Auslösen eines Resets eine adäquate Reaktion darstellen kann [SWS_EcuM_02920].

Zusammenspiel und Nebenläufigkeit

Der Aufruf von EcuM_AL_SwitchOff erfolgt zwingend durch das Modul ECU Manager, sobald das gewählte Shutdown-Ziel OFF lautet [SWS_EcuM_04075]. Bezüglich des Nebenläufigkeitsverhaltens ist der Callout als nicht reentrant (Non Reentrant) festgelegt [SWS_EcuM_02920]. Interpretation: Da das Ziel der Funktion die vollständige Trennung der Stromversorgung bzw. hilfsweise ein Reset ist, dürfte dieser Callout den abschließenden Schritt der Abschaltsequenz darstellen, nach welchem keine weitere reguläre Programmausführung mehr stattfindet. Frage Q-e8a1aaa1413bbea9 (offen)

Fehlerbehandlung

Für den Callout sind in der Spezifikation weder spezifische Fehlercodes noch Fehlerbehandlungsmechanismen oder Meldungen an DET oder DEM vorgesehen [SWS_EcuM_02920].

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function EcuM_AL_Reset [SWS_EcuM_04065] 📄 PDF

void EcuM_AL_Reset (EcuM_ResetType reset);

This callout shall take the code for resetting the ECU.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: cf7a6e2e5e21 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Das Callout EcuM_AL_Reset dient der Aufnahme des integrationsspezifischen Codes, der für das Zurücksetzen des Steuergeräts zuständig ist ([SWS_EcuM_04065]). Die Schnittstelle wird über die Header-Datei EcuM_Externals.h deklariert und besitzt die Service-ID 0x4C ([SWS_EcuM_04065]).

Der Aufruf der Funktion erfolgt synchron und ist als nicht reentrant (Non Reentrant) definiert ([SWS_EcuM_04065]). Als einziger Eingabeparameter wird reset vom Typ EcuM_ResetType übergeben, der die konkrete Art des auszuführenden Resets festlegt ([SWS_EcuM_04065]). Die Funktion besitzt keinen Rückgabewert (void) und verfügt über keine Parameter für Ausgabe oder Ein-/Ausgabe ([SWS_EcuM_04065]).

Im Zusammenspiel der Shutdown-Phase ist festgelegt, dass das Modul ECU Manager das Callout EcuM_AL_Reset zwingend aufrufen muss, wenn das Ziel des Herunterfahrens auf RESET gesetzt ist ([SWS_EcuM_04074]). Für das Callout sind in der Spezifikation weder Fehlercodes noch Benachrichtigungen an DET oder DEM vorgesehen ([SWS_EcuM_04065]). Interpretation: Das Callout dürfte hardwarenahe Steuerbefehle ausführen, die direkt das Zurücksetzen der MCU bewirken. Frage Q-1e318404843faabd (offen)

Dieser Nutzungshinweis wurde von einer KI basierend auf der AUTOSAR-Spezifikation R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function EcuM_EnableWakeupSources [SWS_EcuM_02918] 📄 PDF

void EcuM_EnableWakeupSources (EcuM_WakeupSourceType wakeupSource);

The ECU Manager Module calls EcuM_EnableWakeupSource to allow the system designer to notify wakeup sources defined in the wakeupSource bitfield that SLEEP will be entered and to adjust their source accordingly.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 4e41a87f2d45 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion EcuM_EnableWakeupSources ist ein synchroner Callout des ECU-Managers mit der Service-ID 0x3F, der über den Header EcuM_Externals.h deklariert wird [SWS_EcuM_02918]. Sie dient dazu, den Systementwickler darüber zu informieren, dass der Zustand SLEEP bevorsteht, damit die im Bitfeld wakeupSource (Typ EcuM_WakeupSourceType) angegebenen Weckquellen entsprechend vorbereitet und eingestellt werden können [SWS_EcuM_02918].

Verwendung und Zusammenspiel

Der ECU-Manager führt EcuM_EnableWakeupSources aus, um die Weckquellen für den nächsten Sleep-Modus zu konfigurieren; dies geschieht für jede Weckquelle, die in EcuMWakeupSourceMask für den anvisierten Sleep-Modus konfiguriert ist [SWS_EcuM_02389]. Die Funktion besitzt keinen Rückgabewert (void) und erwartet als Eingabeparameter das Bitfeld wakeupSource [SWS_EcuM_02918].

Nebenläufigkeit und Einschränkungen

  • Reentranz: Die Funktion ist als nicht reentrant (Non Reentrant) spezifiziert [SWS_EcuM_02918].
  • Synchronizität: Die Abarbeitung erfolgt synchron [SWS_EcuM_02918].
  • Fehlerbehandlung: Im Spezifikationsumfang der Schnittstelle sind keine spezifischen DET- oder DEM-Fehlermeldungen definiert [SWS_EcuM_02918].

Dieser Nutzungshinweis wurde automatisiert auf Basis des AUTOSAR-Spezifikationsstandes R20-11 generiert.

function EcuM_GenerateRamHash [SWS_EcuM_02919] 📄 PDF

void EcuM_GenerateRamHash (void);

see EcuM_CheckRamHash

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: ce82c127dbe0 Herkunft Offene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion EcuM_GenerateRamHash dient der Erzeugung eines RAM-Prüfwerts im Kontext des ECU State Managers, wobei die Spezifikation bezüglich der Funktionsweise auf EcuM_CheckRamHash verweist [SWS_EcuM_02919]. Der erzeugte Prüfwert dient vermutlich der späteren Integritätsprüfung des Arbeitsspeichers im Zusammenhang mit Schlaf- oder Ruhezuständen. Frage Q-7f316b389e1609c0 (offen)

Verwendung und Schnittstelle

Der Service besitzt die Service-ID 0x40 und die Signatur void EcuM_GenerateRamHash(void) [SWS_EcuM_02919]. Die Funktion besitzt weder Eingabe-, Ausgabe- noch Ein-/Ausgabeparameter und liefert keinen Rückgabewert. Die Ausführung erfolgt synchron.

Nebenläufigkeit und Einschränkungen

Die Funktion ist als nicht reentrant (Non Reentrant) spezifiziert [SWS_EcuM_02919]. Sie darf folglich nicht unterbrechend oder parallel aus mehreren Kontexten aufgerufen werden. Bereitgestellt wird die Deklaration über die Header-Datei EcuM_Externals.h [SWS_EcuM_02919]. Interpretation: Durch die Definition in EcuM_Externals.h dürfte es sich um einen anwenderspezifisch zu implementierenden Callout handeln, der vom ECU State Manager zu einem passenden Zeitpunkt im Zustandsablauf aufgerufen wird. Frage Q-2f53f1a19cee079c (offen)

Fehlerbehandlung

Für EcuM_GenerateRamHash sind in [SWS_EcuM_02919] keine spezifischen Fehlercodes sowie weder DET- noch DEM-Meldungen definiert.

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation des Moduls EcuM erstellt.

function EcuM_SleepActivity [SWS_EcuM_02928] 📄 PDF

void EcuM_SleepActivity (void);

This callout is invoked periodically in all reduced clock sleep modes. It is explicitely allowed to poll wakeup sources from this callout and to call wakeup notification functions to indicate the end of the sleep state to the ECU State Manager.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 331d24f7a327 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Aufrufkontext

Die Funktion EcuM_SleepActivity stellt einen Callout des ECU State Managers dar, der in der Header-Datei EcuM_Externals.h mit der Service-ID 0x41 bereitgestellt wird [SWS_EcuM_02928]. Der Aufruf erfolgt periodisch in allen Schlafmodi mit reduziertem Prozessortakt (reduced clock sleep modes) [SWS_EcuM_02928]. Die Funktion besitzt die Signatur void EcuM_SleepActivity(void), arbeitet synchron und nimmt weder Eingabe-, Ausgabe- noch Ein-/Ausgabeparameter entgegen [SWS_EcuM_02928].

Funktionale Aufgaben und Zusammenspiel

Zweck dieses Callouts ist die Durchführung von Aktivitäten während des Schlafs: Es ist explizit vorgesehen und gestattet, innerhalb von EcuM_SleepActivity Weckquellen zyklisch abzufragen (Polling) [SWS_EcuM_02928]. Zudem dürfen direkt aus dem Callout heraus Weck-Benachrichtigungsfunktionen aufgerufen werden, um dem ECU State Manager das Beenden des Schlafzustands anzuzeigen [SWS_EcuM_02928].

Nebenläufigkeit und Einschränkungen

Die Schnittstelle ist als nicht reentrant (Non Reentrant) spezifiziert [SWS_EcuM_02928]. Da der Callout keinen Rückgabewert liefert und keine Fehlerparameter definiert sind, erfolgt über die Funktionsschnittstelle keine direkte Fehlerbehandlung über Fehlercodes oder Fehlermelder wie DET oder DEM [SWS_EcuM_02928].

Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function EcuM_StartCheckWakeup [SWS_EcuM_04096] 📄 PDF

void EcuM_StartCheckWakeup (EcuM_WakeupSourceType WakeupSource);

This API is called by the ECU Firmware to start the CheckWakeupTimer for the corresponding WakeupSource. If EcuMCheckWakeupTimeout > 0 the CheckWakeupTimer for the Wakeup Source is started. If EcuMCheckWakeupTimeout <= 0 the API call is ignored by the EcuM.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: adada8898a5f Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Aufrufkontext

Die synchrone Schnittstelle EcuM_StartCheckWakeup wird laut [SWS_EcuM_04096] von der ECU-Firmware aufgerufen, um den Timer CheckWakeupTimer für eine bestimmte Weckquelle zu starten. Der Funktion wird hierzu der Parameter WakeupSource vom Typ EcuM_WakeupSourceType übergeben. Sie besitzt keinen Rückgabewert (void) und wird über die Header-Datei EcuM_Externals.h bereitgestellt.

Ablauf und Bedingungen

Die Ausführung der Funktion hängt von der Konfiguration der Weckquelle ab [SWS_EcuM_04096]:

  • Ist für die betreffende Weckquelle EcuMCheckWakeupTimeout > 0 konfiguriert, wird der zugehörige CheckWakeupTimer gestartet.
  • Gilt EcuMCheckWakeupTimeout <= 0, wird der Funktionsaufruf durch das EcuM vollständig ignoriert.

Nebenläufigkeit und Fehlerbehandlung

Die Funktion ist als nicht reentrant (Non Reentrant) spezifiziert [SWS_EcuM_04096]. Der Aufrufer muss folglich sicherstellen, dass Aufrufe für dieselbe oder andere Weckquellen nicht nebenläufig stattfinden. Spezifische Fehlercodes sowie Benachrichtigungen an DET oder DEM sind für diesen Aufruf nicht spezifiziert; ein Aufruf bei nicht positivem Timeout bleibt laut Spezifikation folgenlos, was vermutlich als tolerantes Abfangen irrelevanter Timer-Prüfungen interpretiert werden darf [SWS_EcuM_04096]. Frage Q-19d98b03d3ee7504 (offen)

Dieser Nutzungshinweis wurde von einer KI auf Basis der Spezifikation AUTOSAR R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function EcuM_CheckWakeup [SWS_EcuM_02929] 📄 PDF

void EcuM_CheckWakeup (EcuM_WakeupSourceType wakeupSource);

This callout is called by the EcuM to poll a wakeup source. It shall also be called by the ISR of a wakeup source to set up the PLL and check other wakeup sources that may be connected to the same interrupt.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 9c2d9feb4e41 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Der Callout EcuM_CheckWakeup dient der Prüfung und dem Polling von Weckquellen sowie der Konfiguration der PLL nach einem Weckereignis [SWS_EcuM_02929]. Die Funktion wird über die Header-Datei EcuM_Externals.h bereitgestellt und besitzt die Service-ID 0x42 [SWS_EcuM_02929].

Aufrufkontext und Semantik

  • Signatur und Parameter: Die Funktion wird synchron ausgeführt (Synchronous), besitzt keinen Rückgabewert und erwartet als Eingangsparameter wakeupSource vom Typ EcuM_WakeupSourceType [SWS_EcuM_02929].
  • Aufrufer: Der Callout wird vom EcuM aufgerufen, um eine Weckquelle zyklisch abzufragen. Zudem ist er zwingend von der Interrupt-Service-Routine (ISR) einer Weckquelle aufzurufen, um die PLL aufzusetzen und weitere Weckquellen zu prüfen, die am selben Interrupt angebunden sind [SWS_EcuM_02929].
  • Polling-Schleife: In der Polling-Sequenz ruft der EcuM die Callouts EcuM_SleepActivity und EcuM_CheckWakeup wiederholt in einer blockierenden Schleife auf, bis ein Weckereignis als anstehend oder validiert gemeldet wird [SWS_EcuM_03020].

Einschränkungen und Fehlerbehandlung

Die Funktion ist als nicht reentrant (Non Reentrant) spezifiziert [SWS_EcuM_02929]. Da Aufrufe sowohl aus dem blockierenden Ablauf der Polling-Sequenz als auch aus ISR-Kontexten erfolgen, dürfte die Integration sicherstellen müssen, dass keine unkoordinierten nebenläufigen Aufrufe stattfinden. Frage Q-8bc8f164670a0911 (offen) Spezifische Fehlercodes oder Fehlerbenachrichtigungen an DET oder DEM sind für diesen Callout nicht definiert.

Dieser Nutzungshinweis wurde automatisch auf Basis der AUTOSAR-Spezifikation generiert.

Implementer's Guide folgt (Komplexität I1)

function EcuM_EndCheckWakeup [SWS_EcuM_02927] 📄 PDF

void EcuM_EndCheckWakeup (EcuM_WakeupSourceType WakeupSource);

This API is called by any SW Module whose wakeup source is checked asynchronously (e.g. asynchronous Can Trcv Driver) and the Check of the Wakeup returns a negative Result (no Wakeup by this Source). The API cancels the CheckWakeupTimer for the WakeupSource. If the correponding CheckWakeupTimer is canceled the check of this wakeup source is finished.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 22fef1b09b30 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Funktion EcuM_EndCheckWakeup wird von Software-Modulen aufgerufen, wenn die asynchrone Überprüfung einer Weckquelle (wie etwa bei einem asynchronen CAN-Transceiver-Treiber) ein negatives Ergebnis liefert, also kein Weckereignis durch diese Quelle vorliegt [SWS_EcuM_02927].

Verwendung und Parameter

Über den Eingangsparameter WakeupSource vom Typ EcuM_WakeupSourceType wird diejenige Weckquelle übergeben, für die der zugehörige Überwachungstimer abgebrochen werden soll [SWS_EcuM_02927]. Die Funktion liefert keinen Rückgabewert (void) und verfügt über keine Ein-/Ausgangs- oder Ausgangsparameter [SWS_EcuM_02927].

Funktionsweise und Nebenläufigkeit

  • Die Funktion bricht den Timer CheckWakeupTimer für die spezifizierte Weckquelle ab; mit dem Abbruch dieses Timers gilt die Überprüfung der Weckquelle als abgeschlossen [SWS_EcuM_02927].
  • Die Schnittstelle ist als synchron und nicht reentrant (Non Reentrant) definiert [SWS_EcuM_02927].
  • Die Deklaration wird über die Header-Datei EcuM_Externals.h zur Verfügung gestellt [SWS_EcuM_02927].

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation von AUTOSAR R20-11 generiert.

function EcuM_CheckRamHash [SWS_EcuM_02921] 📄 PDF

uint8 EcuM_CheckRamHash (void);

This callout is intended to provide a RAM integrity test. The goal of this test is to ensure that after a long SLEEP duration, RAM contents is still consistent. The check does not need to be exhaustive since this would consume quite some processing time during wakeups. A well designed check will execute quickly and detect RAM integrity defects with a sufficient probability. This specification does not make any assumption about the algorithm chosen for a particular ECU. The areas of RAM which will be checked have to be chosen carefully. It depends on the check algorithm itself and the task structure. Stack contents of the task executing the RAM check e.g. very likely cannot be checked. It is good practice to have the hash generation and checking in the same task and that this task is not preemptible and that there is only little activity between hash generation and hash check. The RAM check itself is provided by the system designer. In case of applied multi core and existence of Satellite-Ecu M(s): this API will be called by the Master-EcuM only.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: d1c6f593ca9f Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion EcuM_CheckRamHash ist ein synchroner, nicht reeintranter Callout (deklariert in EcuM_Externals.h), der einen Integritätstest des RAM-Speichers bereitstellt [SWS_EcuM_02921]. Die Funktion besitzt keine Parameter und liefert einen Statuswert vom Typ uint8 zurück: Der Wert 0 signalisiert ein Fehlschlagen des Tests, während jeder andere Wert ein erfolgreiches Bestehen anzeigt [SWS_EcuM_02921].

Gemäß [SWS_EcuM_02863] ruft das Modul EcuM vor dem Anhalten des Mikrocontrollers zunächst [SWS_EcuM_02919] auf und führt nach der Rückkehr aus dem Halt-Zustand EcuM_CheckRamHash aus. Ziel ist die Verifikation, dass der RAM-Inhalt auch nach einer langen SLEEP-Phase konsistent geblieben ist [SWS_EcuM_02921].

Für die Implementierung und den Ablauf gelten folgende Randbedingungen:

  • Algorithmus und Prüfbereich: Die Prüffunktion wird vom System-Designer bereitgestellt; sie muss nicht erschöpfend sein, soll jedoch schnell ausführen und Fehler hinreichend sicher erkennen [SWS_EcuM_02921]. Zu prüfende Bereiche sind sorgfältig zu wählen; Stack-Inhalte des ausführenden Tasks können in der Regel nicht geprüft werden [SWS_EcuM_02921].
  • Task-Struktur: Als bewährte Praxis gilt, Hash-Generierung und -Prüfung im selben, nicht unterbrechbaren Task bei minimaler Zwischenaktivität auszuführen [SWS_EcuM_02921].
  • Multi-Core: Bei mehreren Prozessorkernen mit Satelliten-EcuMs wird der Callout ausschließlich durch den Master-EcuM aufgerufen und prüft nur Daten in dessen Reichweite [SWS_EcuM_02863], [SWS_EcuM_02921].

Spezifische DET- oder DEM-Meldungen sind für diesen Callout nicht definiert; die Fehlerreaktion bei Rückgabewert 0 dürfte vermutlich im Ermessen des übergeordneten System-Designs liegen [SWS_EcuM_02921]. Frage Q-473ef8617db29fe3 (offen)

Dieser Text wurde von einer KI erstellt und basiert auf der Spezifikation AUTOSAR Classic R20-11.

function EcuM_DisableWakeupSources [SWS_EcuM_02922] 📄 PDF

void EcuM_DisableWakeupSources (EcuM_WakeupSourceType wakeupSource);

The ECU Manager Module calls EcuM_DisableWakeupSources to set the wakeup source(s) defined in the wakeupSource bitfield so that they are not able to wake the ECU up.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 474e253af285 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Schnittstelle EcuM_DisableWakeupSources mit der Service-ID 0x44 dient dazu, die im Bitfeld-Parameter wakeupSource vom Typ EcuM_WakeupSourceType definierten Weckquellen so zu konfigurieren, dass diese das Steuergerät nicht mehr aufwecken können [SWS_EcuM_02922]. Die Funktionssignatur lautet void EcuM_DisableWakeupSources (EcuM_WakeupSourceType wakeupSource) [SWS_EcuM_02922].

Für den Aufrufkontext und die Integration gelten nach der Spezifikation die folgenden Eigenschaften:

  • Aufrufer und Header: Die Funktion wird durch das Modul ECU Manager aufgerufen und über die Header-Datei EcuM_Externals.h bereitgestellt [SWS_EcuM_02922].
  • Parameter und Rückgabewerte: Als einziger Eingabeparameter wird das Bitfeld wakeupSource übergeben. Die Funktion besitzt weder Ein-/Ausgangs- noch Ausgangsparameter und liefert keinen Rückgabewert (void) zurück [SWS_EcuM_02922].
  • Ausführungssemantik und Nebenläufigkeit: Die Verarbeitung erfolgt synchron. Zudem ist die Funktion als nicht reentrant (Non Reentrant) spezifiziert, sodass gleichzeitige oder verschachtelte Aufrufe vermieden werden müssen [SWS_EcuM_02922].

Bezüglich der Fehlerbehandlung enthält die Spezifikation für diesen Funktionsaufruf weder spezifische Fehlercodes noch Benachrichtigungen an das DET oder DEM [SWS_EcuM_02922].

Dieser Text wurde von einer KI auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.

function EcuM_AL_DriverRestart [SWS_EcuM_02923] 📄 PDF

void EcuM_AL_DriverRestart (void);

This callout shall provide driver initialization and other hardware-related startup activities in the wakeup case.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: f02a8bab5708 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Der Callout EcuM_AL_DriverRestart wird über die Header-Datei EcuM_Externals.h deklariert und besitzt die Service-ID 0x45 [SWS_EcuM_02923]. Die Funktion besitzt die Signatur void EcuM_AL_DriverRestart (void), erfordert keine Übergabeparameter und liefert keinen Rückgabewert [SWS_EcuM_02923]. Zweck dieser Schnittstelle ist es, im Weckfall (Wakeup Case) die Treiberinitialisierung sowie weitere hardwarebezogene Aktivitäten während der Startphase bereitzustellen [SWS_EcuM_02923].

Für die Integration und das Zusammenspiel mit dem Modul EcuM gelten verbindliche Vorgaben:

  • Für die Re-Initialisierung während der Phase WakeupRestart muss der Integrator einen Restart-Block in den Integrationscode für EcuM_AL_DriverRestart einbinden, welcher die konfigurierte Liste EcuMDriverRestartList verwendet [SWS_EcuM_02947] [SWS_EcuM_02923].
  • Die Liste EcuMDriverRestartList kann Treiber enthalten, die als Weckquellen (Wakeup Sources) fungieren [SWS_EcuM_02562]. In diesem Fall muss EcuM_AL_DriverRestart den Auslösemechanismus des Callbacks zur Weckerkennung („wakeup detected“) dieser Treiber wieder scharfschalten (re-arm) [SWS_EcuM_02562].

Hinsichtlich des Laufzeitverhaltens ist die Funktion als synchron und nicht reentrant definiert [SWS_EcuM_02923]. Da es sich um anwendungsspezifischen Integrationscode handelt, definiert die Spezifikation an dieser Schnittstelle keine eigenen Fehlercodes sowie keine standardisierten Meldungen an DET oder DEM.

Dieser Text wurde von einer KI erstellt. Angaben können unvollständig sein und ersetzen nicht die offizielle AUTOSAR-Spezifikation.

Implementer's Guide folgt (Komplexität I2)

function EcuM_StartWakeupSources [SWS_EcuM_02924] 📄 PDF

void EcuM_StartWakeupSources (EcuM_WakeupSourceType wakeupSource);

The callout shall start the given wakeup source(s) so that they are ready to perform wakeup validation.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 72a2492ac382 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Callout-Funktion EcuM_StartWakeupSources dient dazu, die übergebene(n) Weckquelle(n) so zu starten und in Betrieb zu nehmen, dass sie für die anschließende Durchführung der Weckvalidierung (Wakeup Validation) vorbereitet sind [SWS_EcuM_02924].

Verwendung und Aufrufkontext

Die Funktion ist als synchroner Aufruf mit der Service-ID 0x46 spezifiziert, besitzt keinen Rückgabewert (void) und wird über die Header-Datei EcuM_Externals.h zur Verfügung gestellt [SWS_EcuM_02924].

  • Parameter wakeupSource (in): Übergibt die zu startende Weckquelle beziehungsweise eine Bitmaske mehrerer Weckquellen vom Typ EcuM_WakeupSourceType an die Callout-Funktion [SWS_EcuM_02924]. Zusätzliche Ein- oder Ausgabeparameter (inout/out) existieren nicht [SWS_EcuM_02924].

Nebenläufigkeit und Einschränkungen

Hinsichtlich der Ausführungsumgebung ist EcuM_StartWakeupSources als nicht reentrant (Non Reentrant) klassifiziert [SWS_EcuM_02924]. Aufrufer müssen daher sicherstellen, dass die Funktion nicht zeitgleich aus unterbrechenden Interrupt-Service-Routinen oder parallelen Tasks ausgeführt wird.

Zusammenspiel und Fehlerbehandlung

Da EcuM_StartWakeupSources als Callout deklariert ist, obliegt die hardwarenahe Aktivierung der betroffenen Quellen der anwendungsspezifischen Implementierung durch den Systemintegrator [SWS_EcuM_02924]. Die Spezifikation sieht für diese Schnittstelle weder Fehlermeldungen an DET oder DEM noch spezifische Fehler-Rückgabewerte vor [SWS_EcuM_02924]; eventuelle Fehlerzustände beim Starten der Quellen dürften daher vermutlich integrationsspezifisch innerhalb des Callouts abgefangen werden. Frage Q-b595e7175c34a831 (offen)

Dieser Text wurde von einer KI erstellt und basiert auf der Spezifikation von AUTOSAR R20-11.

Implementer's Guide folgt (Komplexität I2)

function EcuM_CheckValidation [SWS_EcuM_02925] 📄 PDF

void EcuM_CheckValidation (EcuM_WakeupSourceType wakeupSource);

This callout is called by the EcuM to validate a wakeup source. If a valid wakeup has been detected, it shall be reported to EcuM via EcuM_ValidateWakeupEvent().

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: c36dd6936c23 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion EcuM_CheckValidation dient als Callout-Schnittstelle des ECU State Managers zur Überprüfung einer Weckquelle [SWS_EcuM_02925]. Der EcuM ruft diese Funktion auf, um festzustellen, ob ein detektiertes Weckereignis valide ist [SWS_EcuM_02925].

Verwendung

Der Callout besitzt die Service-ID 0x47 und wird über die Header-Datei EcuM_Externals.h bereitgestellt [SWS_EcuM_02925]. Als Übergabeparameter dient wakeupSource vom Typ EcuM_WakeupSourceType, über den die zu validierende Weckquelle identifiziert wird [SWS_EcuM_02925]. Die Funktion liefert keinen Rückgabewert (void) und besitzt keine Ausgangs- oder Ein-/Ausgangsparameter [SWS_EcuM_02925]. Die Ausführung erfolgt synchron [SWS_EcuM_02925].

Fehlerbehandlung

Spezifische Fehlercodes, Rückgabewerte im Fehlerfall oder Meldungen an das DET oder DEM sind für diesen Callout in der Spezifikation nicht definiert.

Nebenläufigkeit und Einschränkungen

Hinsichtlich der Nebenläufigkeit ist EcuM_CheckValidation als nicht reentrant (Non Reentrant) festgelegt [SWS_EcuM_02925]. Der aufrufende Kontext des EcuM muss gewährleisten, dass keine parallelen oder verschachtelten Aufrufe für dieselbe oder unterschiedliche Weckquellen stattfinden.

Zusammenspiel

Wurde bei der Ausführung ein valides Weckereignis erkannt, ist dieses zwingend über den Funktionsaufruf EcuM_ValidateWakeupEvent() an den EcuM zurückzumelden [SWS_EcuM_02925]. Interpretation: Die gerätespezifische Logik zur Überprüfung der Hardware sowie die Entscheidung zur Gültigkeit dürfte vollständig im Integrationscode implementiert werden. Frage Q-08061e09b474728d (offen)

Dieser Nutzungshinweis wurde automatisch auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function EcuM_StopWakeupSources [SWS_EcuM_02926] 📄 PDF

void EcuM_StopWakeupSources (EcuM_WakeupSourceType wakeupSource);

The callout shall stop the given wakeup source(s) after unsuccessful wakeup validation.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 63994628bd66 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Callout-Funktion EcuM_StopWakeupSources des Moduls EcuM (Classic Platform) dient dazu, die übergebene(n) Weckquelle(n) nach einer nicht erfolgreichen Weckvalidierung gezielt anzuhalten [SWS_EcuM_02926]. Die Deklaration dieser synchronen Schnittstelle ist über die Header-Datei EcuM_Externals.h verfügbar und führt die Service-ID 0x48 [SWS_EcuM_02926].

Verwendung und Schnittstellenparameter:

  • Eingangsparameter: Als einziger Parameter wird wakeupSource vom Typ EcuM_WakeupSourceType übergeben, welcher die anzuhaltende(n) Weckquelle(n) spezifiziert [SWS_EcuM_02926].
  • Rückgabewert und Ein-/Ausgänge: Es existieren weder Ein-/Ausgangsparameter (inout) noch Ausgangsparameter (out) [SWS_EcuM_02926]. Die Funktion liefert keinen Rückgabewert (void) an den Aufrufer zurück [SWS_EcuM_02926].
  • Ausführungsverhalten: Die Funktionsabwicklung ist als synchron (Synchronous) festgelegt [SWS_EcuM_02926].

Nebenläufigkeit und Fehlerbehandlung:

Die Schnittstelle ist als nicht-reentrant (Non Reentrant) spezifiziert [SWS_EcuM_02926]. Parallele Aufrufe sind daher nicht zulässig und müssen vom Aufrufer vermieden werden. Die Spezifikation definiert für diesen Callout weder spezifische Fehlercodes noch Rückgabewerte oder Benachrichtigungen an das Default Error Tracer (DET) oder das Diagnostic Event Manager (DEM) Modul [SWS_EcuM_02926]. Interpretation: Da die Funktion als externer Callout über EcuM_Externals.h bereitgestellt wird, obliegt die hardwarebezogene Deaktivierung der betreffenden Weckhardware sowie die interne Fehlerbehandlung der anwenderspezifischen Implementierung. Frage Q-b537c805bed751ab (offen)

Dieser Text wurde von einer KI auf Basis der Spezifikation R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function EcuM_MainFunction [SWS_EcuM_02837] 📄 PDF

void EcuM_MainFunction (void);

The purpose of this service is to implement all activities of the ECU State Manager while the OS is up and running.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 9ac46d3f83ab Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Aufrufkontext

Die Funktion EcuM_MainFunction besitzt die Signatur void EcuM_MainFunction(void) mit der Service-ID 0x18 und wird über die Header-Datei SchM_EcuM.h bereitgestellt [SWS_EcuM_02837]. Sie nimmt keine Parameter entgegen und liefert keinen Rückgabewert [SWS_EcuM_02837]. Ihre Aufgabe besteht darin, alle Aktivitäten des ECU State Managers abzuarbeiten, während das Betriebssystem läuft („OS is up and running“) [SWS_EcuM_02837]. Die Funktion dürfte dabei typischerweise periodisch durch den Scheduler aufgerufen werden (Interpretation: Einbindung über SchM_EcuM.h). Frage Q-ca471f22bdb1f11d (offen)

Zusammenspiel und Aufgaben

Im laufenden Betrieb übernimmt EcuM_MainFunction zentrale Koordinationsaufgaben:

  • Validierung von Wakeup-Quellen: Sofern nach Abschluss der WakeupRestart-Sequenz eine Liste von Wakeup-Source-Kandidaten vorliegt, validiert das EcuM-Modul diese Kandidaten innerhalb der EcuM_MainFunction [SWS_EcuM_02539].
  • Ablauf des Validierungs-Timeouts: Läuft das Validierungs-Timeout für ein anstehendes Wakeup-Ereignis ab, setzt die Funktion per ODER-Verknüpfung das zugehörige Bit in der internen Variable für abgelaufene Wakeup-Ereignisse [SWS_EcuM_04081]. Zudem benachrichtigt sie das BSW-Management über BswM_EcuM_Current_Wakeup mit einer EcuM_WakeupSourceType-Bitmaske des Ereignisses und dem Status ECUM_WKSTATUS_EXPIRED [SWS_EcuM_04082].
  • Alarm Clock Service: Ist der Dienst über EcuMAlarmClockPresent vorhanden, aktualisiert die EcuM_MainFunction den Alarm Clock Timer [SWS_EcuM_04002].

Einschränkungen und Instanzen

Als wesentliche Randbedingung für Mehrkern- bzw. Mehrinstanz-Architekturen gilt, dass EcuM_MainFunction in allen Instanzen des EcuM ausgeführt werden muss [SWS_EcuM_04011].

Dieser Nutzungshinweis wurde automatisch auf Basis der Spezifikation R20-11 generiert.

Implementer's Guide folgt (Komplexität I2)

type EcuM_ConfigType [SWS_EcuM_04038] 📄 PDF

A pointer to such a structure shall be provided to the ECU State Manager initialization routine for configuration.

type EcuM_RunStatusType [SWS_EcuM_04120] 📄 PDF

Result of the Run Request Protocol sent to BswM

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 94aa8a70183e Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Der Datentyp EcuM_RunStatusType ist als uint8 definiert und wird über den Header EcuM.h bereitgestellt ([SWS_EcuM_04120]). Er dient zur formalen Repräsentation des aktuellen Status des Run-Request-Protokolls im ECU-Manager und wird als Ergebnis an den Basic Software Mode Manager (BswM) übermittelt ([SWS_EcuM_04120]).

Der zulässige Wertebereich umfasst drei diskrete Zustände ([SWS_EcuM_04120]):

  • ECUM_RUNSTATUS_UNKNOWN (Wert 0): Repräsentiert einen unbekannten Status und dient gleichzeitig als definierter Initialisierungswert (Init Value).
  • ECUM_RUNSTATUS_REQUESTED (Wert 1): Kennzeichnet den Zustand, dass der RUN-Status vom ECU-Manager aktiv angefordert wurde.
  • ECUM_RUNSTATUS_RELEASED (Wert 2): Signalisiert, dass der RUN-Status vom ECU-Manager wieder freigegeben wurde.

Hinsichtlich des Zusammenspiels verpflichtet die Anforderung [SWS_EcuM_04121] das ECU-Manager-Modul, den BswM verbindlich über den aktuellen Zustand des Run-Request-Protokolls anhand der in EcuM_RunStatusType aufgeführten Statuswerte zu informieren. Interpretation: Da die Anforderung keine spezifische Funktionssignatur oder Aufrufkonvention für den Meldungsfluss nennt, dürfte die Statusinformation typischerweise über eine interne Benachrichtigungsfunktion oder Callback-Schnittstelle an das BswM-Modul übergeben werden. Frage Q-e136b90c2edbc29c (offen) Spezifische Fehlercodes, DET- oder DEM-Meldungen sowie besondere Reentranzbedingungen sind für diesen elementaren Datentyp in den vorliegenden Anforderungen nicht vorgesehen.

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation von AUTOSAR Classic R20-11 erstellt.

Implementer's Guide folgt (Komplexität I1)

type EcuM_WakeupSourceType [SWS_EcuM_04040] 📄 PDF

EcuM_WakeupSourceType defines a bitfield with 5 pre-defined positions (see Range). The bitfield provides one bit for each wakeup source. In WAKEUP, all bits cleared indicates that no wakeup source is known. In STARTUP, all bits cleared indicates that no reason for restart or reset is known. In this case, ECUM_WKSOURCE_RESET shall be assumed.

type EcuM_WakeupStatusType [SWS_EcuM_04041] 📄 PDF

The type describes the possible states of a wakeup source.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 99623532d1ab Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Der Datentyp EcuM_WakeupStatusType beschreibt gemäß [SWS_EcuM_04041] die möglichen Zustände einer Weckquelle (Wakeup Source) im ECU State Manager. Der Typ ist vom Basistyp uint8 abgeleitet und wird über den Header EcuM.h bereitgestellt [SWS_EcuM_04041].

Der Wertebereich bildet den Lebenszyklus eines Weckereignisses über vier Zustände ab [SWS_EcuM_04041]:

  • ECUM_WKSTATUS_NONE (Wert 0): Es wurde kein anstehendes Weckereignis erkannt [SWS_EcuM_04041].
  • ECUM_WKSTATUS_PENDING (Wert 1): Ein Weckereignis wurde detektiert, ist jedoch noch nicht validiert [SWS_EcuM_04041].
  • ECUM_WKSTATUS_VALIDATED (Wert 2): Das Weckereignis ist gültig und wurde erfolgreich bestätigt [SWS_EcuM_04041].
  • ECUM_WKSTATUS_EXPIRED (Wert 3): Das Weckereignis wurde nicht rechtzeitig validiert und ist folglich abgelaufen [SWS_EcuM_04041].

Verwendung und Zusammenspiel: Der Typ dient als zentrale Statusrepräsentation für Weckquellen. Interpretation: Aufrufer dürften diesen Status im Rahmen von Statusabfragen auswerten, um zu ermitteln, ob eine Weckquelle aktiv validiert wird, bereits ein gültiges Aufwachen signalisiert hat oder das Validierungszeitfenster überschritten wurde. Frage Q-a3f721e8f1753eb1 (offen)

Dieser Text wurde automatisch generiert. Alle Angaben basieren ausschließlich auf den Spezifikationsanforderungen des jeweiligen Releases.

Implementer's Guide folgt (Komplexität I1)

type EcuM_ResetType [SWS_EcuM_04044] 📄 PDF

This type describes the reset mechanisms supported by the ECU State Manager. It can be extended by configuration.

type EcuM_StateType [SWS_EcuM_91005] 📄 PDF

ECU State Manager states.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 04e4b37b6e32 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Der Typ EcuM_StateType ist ein von uint8 abgeleiteter Datentyp, der über den Header EcuM.h bereitgestellt wird und die Betriebszustände des ECU State Managers abbildet [SWS_EcuM_91005]. Das Modul EcuM ist verpflichtet, sämtliche in EcuM_StateType aufgeführten Zustände zu definieren [SWS_EcuM_02664]. Der Wertebereich umfasst die Teilzustandsmaske ECUM_SUBSTATE_MASK (0x0f) sowie die Hauptzustände ECUM_STATE_STARTUP (0x10), ECUM_STATE_RUN (0x32), ECUM_STATE_POST_RUN (0x33), ECUM_STATE_SHUTDOWN (0x40) und ECUM_STATE_SLEEP (0x50) [SWS_EcuM_91005].

Verwendung und Zusammenspiel

Der Datentyp fungiert als zentraler Parameter für die Zustandskommunikation zwischen dem BswM und dem EcuM:

  • Zustandswechsel an EcuM: Über den synchronen und reentranten Funktionsaufruf EcuM_SetState(EcuM_StateType state) mit der Service-ID 0x2b benachrichtigt der BswM das EcuM-Modul über einen Zustandswechsel [SWS_EcuM_04122].
  • Zustandsmeldung an BswM: Der EcuM meldet den aktuellen Zustand an den BswM durch Aufruf der Schnittstelle BswM_EcuM_CurrentState(EcuM_StateType State) [SWS_EcuM_04143].

Nebenläufigkeit, Reihenfolge und Fehlerbehandlung

Hinsichtlich der zeitlichen Reihenfolge gilt die Vorgabe, dass ein neuer Zustand vom EcuM erst dann gesetzt werden darf, wenn die RTE ihre Rückmeldung über den entsprechenden Acknowledgement-Port erteilt hat [SWS_EcuM_04143]. Spezifische Fehlercodes, Rückgabewerte oder DET-/DEM-Meldungen sind für diesen Datentyp in den vorliegenden Quellen nicht vorgesehen.

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikationsanforderungen generiert.

Implementer's Guide folgt (Komplexität I1)

type EcuM_Mode [SWS_EcuM_04107] 📄 PDF

–

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 930c9709cbac Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Der Typ EcuM_Mode ist als ModeDeclarationGroup gemäß [SWS_EcuM_04107] definiert und repräsentiert die zentralen Zustände des ECU State Managers. Als initialer Modus ist STARTUP festgelegt. Darüber hinaus umfasst die Gruppe die definierten Modi POST_RUN, RUN, SHUTDOWN sowie SLEEP [SWS_EcuM_04107].

Im Systemverbund dient EcuM_Mode als Typbasis für die Modegruppe currentMode innerhalb des Service-Interfaces EcuM_CurrentMode [SWS_EcuM_04108]. Über diese Schnittstelle kann der aktuelle ECU-Modus abgefragt oder über den RTE-Modus-Mechanismus an andere Software-Komponenten signalisiert werden.

Hinsichtlich des Aufrufkontexts und der Nebenläufigkeit enthält die Spezifikation des Typs selbst keine expliziten Einschränkungen zu Reentranz oder Fehlercodes; die Verwaltung der Zustandsübergänge erfolgt über die zugehörigen Service-Schnittstellen des EcuM.

Dieser Hinweis wurde automatisiert generiert und basiert auf AUTOSAR R20-11 Spezifikationsdaten.

Implementer's Guide folgt (Komplexität I1)

type currentMode [SWS_EcuM_04112] 📄 PDF

–

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: b0199fd54780 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Das Element currentMode ist als Provided-Port des Moduls EcuM definiert und stellt das Service-Interface EcuM_CurrentMode für die Software-Architektur bereit [SWS_EcuM_04112]. Dieses Service-Interface dient dem Auslesen des aktuellen ECU-Modus und kapselt die Modusgruppe currentMode auf Basis des Datentyps EcuM_Mode [SWS_EcuM_04108].

Im laufenden Systembetrieb erfolgt die Nutzung zur Signalisierung von Zustandsänderungen:

  • Aufruf und Verwendung: Sobald ein Moduswechsel eintritt, meldet das EcuM diesen über RTE-Modus-Ports an Software-Komponenten (SW-Cs) [SWS_EcuM_04133]. Unter der Spezifikationsannahme des Portnamens currentMode und bei Nutzung der direkten RTE-API wird hierfür die Funktion Rte_Switch_currentMode_currentMode( Rte_ModeType_EcuM_Mode mode) aufgerufen [SWS_EcuM_04133].
  • Parameter und Rückgabewert: Der Parameter mode übergibt den neu einzunehmenden Modus an die RTE [SWS_EcuM_04133]. Der von der Switch-API gelieferte Rückgabewert vom Typ Rte_StatusType wird nicht ausgewertet, sondern ist laut Spezifikation zwingend zu ignorieren [SWS_EcuM_04133].
  • Zusammenspiel: Eine Software-Komponente, die über Modusänderungen informiert werden soll, muss das Modus-Switch-Interface EcuM_CurrentMode als Required-Port anfordern [SWS_EcuM_04133].

Dieser Nutzungshinweis wurde automatisch generiert und basiert ausschließlich auf den Spezifikationsanforderungen des Releases R20-11.

Implementer's Guide folgt (Komplexität I1)

type EcuM_ShutdownCauseType [SWS_EcuM_04045] 📄 PDF

This type describes the cause for a shutdown by the ECU State Manager. It can be extended by configuration.

type EcuM_ShutdownModeType [SWS_EcuM_04101] 📄 PDF

This data type represents the modes of the ECU Manager module.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 799a0b090179 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Wertebereich

Der Datentyp EcuM_ShutdownModeType basiert auf uint16 und wird über die Header-Datei Rte_EcuM_Type.h bereitgestellt [SWS_EcuM_04101]. Er bildet die im ECU State Manager konfigurierten Modi ab. Sein Wertebereich umfasst:

  • die konfigurierten Sleep-Modi gemäß EcuMSleepModeId [SWS_EcuM_04101] sowie
  • die konfigurierten Reset-Modi, berechnet aus dem Offset 256 + EcuMResetModeId [SWS_EcuM_04101].

Zusammenspiel und Aufrufkontext

Der Typ wird in synchronen und reentranten Diensten des ECU Managers verwendet:

  • EcuM_SelectShutdownTarget übernimmt shutdownMode als Eingabeparameter, um den konkreten Sleep-Modus (bei Ziel ECUM_SHUTDOWN_TARGET_SLEEP) oder Reset-Mechanismus (bei Ziel ECUM_SHUTDOWN_TARGET_RESET) festzulegen [SWS_EcuM_02822].
  • EcuM_GetShutdownTarget liefert über einen Zeigerparameter auf EcuM_ShutdownModeType zurück, welcher konfigurierte Sleep- oder Reset-Modus für das aktuelle Shutdown-Ziel gewählt ist [SWS_EcuM_02824].
  • EcuM_GetLastShutdownTarget gibt den Shutdown-Modus des vorangegangenen Shutdown-Vorgangs über einen Ausgabeparameter aus [SWS_EcuM_02825]. Über das Service-Interface EcuM_ShutdownTarget steht diese Funktionalität auch Software-Komponenten (SW-Cs) zur Verfügung [SWS_EcuM_03011].

Fehlerbehandlung und Randbedingungen

Die Funktionen geben Std_ReturnType zurück. Wird beispielsweise ein NULL-Pointer an EcuM_GetShutdownTarget oder EcuM_GetLastShutdownTarget übergeben, schlägt der Aufruf mit E_NOT_OK fehl [SWS_EcuM_02824], [SWS_EcuM_02825]. Bei erfolgreicher Durchführung melden die Dienste E_OK [SWS_EcuM_02822], [SWS_EcuM_03011].

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikationsanforderungen generiert.

Implementer's Guide folgt (Komplexität I1)

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/CP_MOD_EcuM
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_EcuM@rel:R20-11#0c790dfe
Content hash
0c790dfe
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_ECUStateManager.pdf#nameddest=SWS_EcuM_02813

Themenkarte

Detailansicht

Wähle in der Gliederung einen Eintrag aus.

Initialisierung und Status

Returns the version information of this module.

void EcuM_GetVersionInfo (Std_VersionInfoType* versioninfo);
EcuM_Init function

Initializes the ECU state manager and carries out the startup procedure. The function will never return (it calls StartOS)

void EcuM_Init (void);

Dienste · Get…

EcuM_GetBootTarget returns the current boot target - see EcuM_SelectBootTarget. EcuM_Get BootTarget is part of the ECU Manager Module port interface.

Std_ReturnType EcuM_GetBootTarget (EcuM_BootTargetType* target);

EcuM_GetCurrentTime returns the current value of the EcuM clock (i.e. the time since battery connect). EcuM_GetCurrentTime is part of the ECU Manager Module port interface.

Std_ReturnType EcuM_GetCurrentTime (EcuM_TimeType* time);

Gets expired wakeup events.

EcuM_WakeupSourceType EcuM_GetExpiredWakeupEvents (void);

EcuM_GetLastShutdownTarget returns the shutdown target of the previous shutdown process. EcuM_GetLastShutdownTarget is part of the ECU Manager Module port interface.

Std_ReturnType EcuM_GetLastShutdownTarget (EcuM_ShutdownTargetType* shutdownTarget, EcuM_ShutdownModeType* shutdownMode);

Gets pending wakeup events.

EcuM_WakeupSourceType EcuM_GetPendingWakeupEvents (void);

EcuM_GetShutdownCause returns the selected shutdown cause as set by EcuM_Select ShutdownCause. EcuM_GetShutdownCause is part of the ECU Manager Module port interface.

Std_ReturnType EcuM_GetShutdownCause (EcuM_ShutdownCauseType* shutdownCause);

EcuM_GetShutdownTarget returns the currently selected shutdown target as set by EcuM_ SelectShutdownTarget. EcuM_GetShutdownTarget is part of the ECU Manager Module port interface.

Std_ReturnType EcuM_GetShutdownTarget (EcuM_ShutdownTargetType* shutdownTarget, EcuM_ShutdownModeType* shutdownMode);

Gets validated wakeup events.

EcuM_WakeupSourceType EcuM_GetValidatedWakeupEvents (void);

EcuM_GetWakeupTime returns the current value of the master alarm clock (the minimum absolute time of all user alarm clocks). EcuM_GetWakeupTime is part of the ECU Manager Module port interface.

Std_ReturnType EcuM_GetWakeupTime (EcuM_TimeType* time);

Dienste · A…

This callout shall provide driver initialization and other hardware-related startup activities in case of a power on reset.

void EcuM_AL_DriverInitOne (void);

This callout shall provide driver initialization and other hardware-related startup activities for loading the post-build configuration data. Beware: Here only pre-compile and link-time configurable modules may be used.

void EcuM_AL_DriverInitZero (void);

This callout shall provide driver initialization and other hardware-related startup activities in the wakeup case.

void EcuM_AL_DriverRestart (void);
EcuM_AL_Reset function

This callout shall take the code for resetting the ECU.

void EcuM_AL_Reset (EcuM_ResetType reset);

If the configuration parameter EcuMSetProgrammableInterrupts is set to true, this callout Ecu M_AL_SetProgrammableInterrupts is executed and shall set the interrupts on ECUs with programmable interrupts.

void EcuM_AL_SetProgrammableInterrupts (void);

This callout shall take the code for shutting off the power supply of the ECU. If the ECU cannot unpower itself, a reset may be an adequate reaction.

void EcuM_AL_SwitchOff (void);

Dienste · Set…

EcuM_SetAbsWakeupAlarm sets the user's wakeup alarm to an absolute point in time. EcuM_ SetAbsWakeupAlarm is part of the ECU Manager Module port interface.

Std_ReturnType EcuM_SetAbsWakeupAlarm (EcuM_UserType user, EcuM_TimeType time);
EcuM_SetClock function

EcuM_SetClock sets the EcuM clock time to the provided value. This API is useful for testing the alarm services; Alarms that take days to expire can be tested. EcuM_SetClock is part of the ECU Manager Module port interface.

Std_ReturnType EcuM_SetClock (EcuM_UserType user, EcuM_TimeType time);

EcuM_SetRelWakeupAlarm sets a user's wakeup alarm relative to the current point in time. EcuM_SetRelWakeupAlarm is part of the ECU Manager Module port interface.

Std_ReturnType EcuM_SetRelWakeupAlarm (EcuM_UserType user, EcuM_TimeType time);
EcuM_SetState function

Function called by BswM to notify about State Switch.

void EcuM_SetState (EcuM_StateType state);

Sets the wakeup event.

void EcuM_SetWakeupEvent (EcuM_WakeupSourceType sources);

Dienste · Check…

This callout is intended to provide a RAM integrity test. The goal of this test is to ensure that after a long SLEEP duration, RAM contents is still consistent. The check does not need to be exhaustive since this would consume quite some processing time during wakeups. A well designed check will execute quickly and detect RAM integrity defects with a sufficient probability. This specification does not make any assumption about the algorithm chosen for a particular ECU. The areas of RAM which will be checked have to be chosen carefully. It depends on the check algorithm itself and the task structure. Stack contents of the task executing the RAM check e.g. very likely cannot be checked. It is good practice to have the hash generation and checking in the same task and that this task is not preemptible and that there is only little activity between hash generation and hash check. The RAM check itself is provided by the system designer. In case of applied multi core and existence of Satellite-Ecu M(s): this API will be called by the Master-EcuM only.

uint8 EcuM_CheckRamHash (void);

This callout is called by the EcuM to validate a wakeup source. If a valid wakeup has been detected, it shall be reported to EcuM via EcuM_ValidateWakeupEvent().

void EcuM_CheckValidation (EcuM_WakeupSourceType wakeupSource);

This callout is called by the EcuM to poll a wakeup source. It shall also be called by the ISR of a wakeup source to set up the PLL and check other wakeup sources that may be connected to the same interrupt.

void EcuM_CheckWakeup (EcuM_WakeupSourceType wakeupSource);

Dienste · Select…

EcuM_SelectBootTarget selects a boot target. EcuM_SelectBootTarget is part of the ECU Manager Module port interface.

Std_ReturnType EcuM_SelectBootTarget (EcuM_BootTargetType target);

EcuM_SelectShutdownCause elects the cause for a shutdown. EcuM_SelectShutdownCause is part of the ECU Manager Module port interface.

Std_ReturnType EcuM_SelectShutdownCause (EcuM_ShutdownCauseType target);

EcuM_SelectShutdownTarget selects the shutdown target. EcuM_SelectShutdownTarget is part of the ECU Manager Module port interface.

Std_ReturnType EcuM_SelectShutdownTarget (EcuM_ShutdownTargetType shutdownTarget, EcuM_ShutdownModeType shutdownMode);

Dienste · On…

This call allows the system designer to notify that the GO OFF I state is about to be entered.

void EcuM_OnGoOffOne (void);

This call allows the system designer to notify that the GO OFF II state is about to be entered.

void EcuM_OnGoOffTwo (void);

Dienste · Release…

Releases a POST RUN request previously done with a call to EcuM_RequestPOST_RUN. The service is intended for implementing AUTOSAR ports.

Std_ReturnType EcuM_ReleasePOST_RUN (EcuM_UserType user);

Releases a RUN request previously done with a call to EcuM_RequestRUN. The service is intended for implementing AUTOSAR ports.

Std_ReturnType EcuM_ReleaseRUN (EcuM_UserType user);

Dienste · Request…

Places a request for the POST RUN state. Requests can be placed by every user made known to the state manager at configuration time. Requests for RUN and POST RUN must be tracked independently (in other words: two independent variables). The service is intended for implementing AUTOSAR ports.

Std_ReturnType EcuM_RequestPOST_RUN (EcuM_UserType user);

Places a request for the RUN state. Requests can be placed by every user made known to the state manager at configuration time.

Std_ReturnType EcuM_RequestRUN (EcuM_UserType user);

Dienste · Start…

This API is called by the ECU Firmware to start the CheckWakeupTimer for the corresponding WakeupSource. If EcuMCheckWakeupTimeout > 0 the CheckWakeupTimer for the Wakeup Source is started. If EcuMCheckWakeupTimeout <= 0 the API call is ignored by the EcuM.

void EcuM_StartCheckWakeup (EcuM_WakeupSourceType WakeupSource);

The callout shall start the given wakeup source(s) so that they are ready to perform wakeup validation.

void EcuM_StartWakeupSources (EcuM_WakeupSourceType wakeupSource);

Dienste · Weitere

Ecum_AbortWakeupAlarm aborts the wakeup alarm previously set by this user. EcuM_Abort WakeupAlarm is part of the ECU Manager Module port interface.

Std_ReturnType EcuM_AbortWakeupAlarm (EcuM_UserType user);

Clears wakeup events.

void EcuM_ClearWakeupEvent (EcuM_WakeupSourceType sources);

This callout should evaluate some condition, like port pin or NVRAM value, to determine which post-build configuration shall be used in the remainder of the startup process. It shall load this configuration data into a piece of memory that is accessible by all BSW modules and shall return a pointer to the EcuM post-build configuration as a base for all BSW module post-build configrations.

const EcuM_ConfigType* EcuM_DeterminePbConfiguration (void);

The ECU Manager Module calls EcuM_DisableWakeupSources to set the wakeup source(s) defined in the wakeupSource bitfield so that they are not able to wake the ECU up.

void EcuM_DisableWakeupSources (EcuM_WakeupSourceType wakeupSource);

The ECU Manager Module calls EcuM_EnableWakeupSource to allow the system designer to notify wakeup sources defined in the wakeupSource bitfield that SLEEP will be entered and to adjust their source accordingly.

void EcuM_EnableWakeupSources (EcuM_WakeupSourceType wakeupSource);

This API is called by any SW Module whose wakeup source is checked asynchronously (e.g. asynchronous Can Trcv Driver) and the Check of the Wakeup returns a negative Result (no Wakeup by this Source). The API cancels the CheckWakeupTimer for the WakeupSource. If the correponding CheckWakeupTimer is canceled the check of this wakeup source is finished.

void EcuM_EndCheckWakeup (EcuM_WakeupSourceType WakeupSource);

The ECU State Manager will call the error hook if the error codes "ECUM_E_RAM_CHECK_ FAILED" or "ECUM_E_CONFIGURATION_DATA_INCONSISTENT" occur. In this situation it is not possible to continue processing and the ECU must be stopped. The integrator may choose the modality how the ECU is stopped, i.e. reset, halt, restart, safe state etc.

void EcuM_ErrorHook (uint16 reason);

see EcuM_CheckRamHash

void EcuM_GenerateRamHash (void);

Instructs the ECU State Manager module to go into a sleep mode, Reset or OFF depending on the previously selected shutdown target.

Std_ReturnType EcuM_GoDownHaltPoll (EcuM_UserType UserID);

If the configuration parameter EcuMResetLoopDetection is set to true, this callout EcuM_Loop Detection is called on every startup.

void EcuM_LoopDetection (void);
EcuM_Shutdown function

Typically called from the shutdown hook, this function takes over execution control and will carry out GO OFF II activities.

void EcuM_Shutdown (void);

This callout is invoked periodically in all reduced clock sleep modes. It is explicitely allowed to poll wakeup sources from this callout and to call wakeup notification functions to indicate the end of the sleep state to the ECU State Manager.

void EcuM_SleepActivity (void);

This function implements the STARTUP II state.

void EcuM_StartupTwo (void);

The callout shall stop the given wakeup source(s) after unsuccessful wakeup validation.

void EcuM_StopWakeupSources (EcuM_WakeupSourceType wakeupSource);

After wakeup, the ECU State Manager will stop the process during the WAKEUP VALIDATION state/sequence to wait for validation of the wakeup event.This API service is used to indicate to the ECU Manager module that the wakeup events indicated in the sources parameter have been validated.

void EcuM_ValidateWakeupEvent (EcuM_WakeupSourceType sources);

Zyklisch

The purpose of this service is to implement all activities of the ECU State Manager while the OS is up and running.

void EcuM_MainFunction (void);

Typen

A pointer to such a structure shall be provided to the ECU State Manager initialization routine for configuration.

–

This type describes the reset mechanisms supported by the ECU State Manager. It can be extended by configuration.

Result of the Run Request Protocol sent to BswM

This type describes the cause for a shutdown by the ECU State Manager. It can be extended by configuration.

This data type represents the modes of the ECU Manager module.

ECU State Manager states.

This data type represents the time of the ECU Manager module.

Unique value for each user.

EcuM_WakeupSourceType defines a bitfield with 5 pre-defined positions (see Range). The bitfield provides one bit for each wakeup source. In WAKEUP, all bits cleared indicates that no wakeup source is known. In STARTUP, all bits cleared indicates that no reason for restart or reset is known. In this case, ECUM_WKSOURCE_RESET shall be assumed.

The type describes the possible states of a wakeup source.