DEENESPTFRRUARHIKOZHNL

ECU State Manager (EcuM)

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

모듈 가이드AI 생성

BswM과 연계하여 ECU의 기동, 셧다운, 슬립 단계 및 웨이크업 소스를 제어합니다.
AI 생성 미검증 모델: claude-opus-5-5 · 노력: high · 온도: 제어 불가 · 프롬프트: c4073030eea4 출처 열린 질문 (1)
인과 앵커: R20-11 R20-11부터 유효 이 사양 릴리스용으로 새로 합성되었습니다.
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

BswM과 연계하여 ECU의 기동, 셧다운, 슬립 단계 및 웨이크업 소스를 제어합니다.

ECU State Manager는 Classic ECU의 수명 주기를 제어합니다. OS 시작 전까지 기본 소프트웨어를 초기화하고, ECU를 셧다운 목표인 SLEEP, RESET 또는 OFF로 이끌며, 유효성 검사를 포함하여 웨이크업 소스를 관리합니다 [SWS_EcuM_04136]. 하드웨어 관련 단계는 콜아웃을 통해 Integration Code가 처리합니다. 사용자의 RUN 및 POST_RUN 요청은 EcuM이 중재하지만, 상태 전환은 BswM이 결정하고 이를 EcuM_SetState을 통해 통지합니다 [SWS_EcuM_04116]. 가장 중요한 제약 조건은 SLEEP 단계에서 웨이크업 이벤트가 누락되어서는 안 된다는 점입니다.

ECU State Manager(EcuM)는 Classic Platform에서 ECU의 기동, 셧다운 및 슬립 단계를 담당합니다. EcuM_Init은 Init 블록 0 및 1을 사용하여 StartPreOS 시퀀스를 실행합니다. 이 과정에서 EcuM은 포스트 빌드 구성을 선택 및 검사하고 마지막으로 StartOS을 호출합니다. 이후 EcuM_StartupTwo가 SchM 및 BswM을 시작합니다 [SWS_EcuM_02684] [SWS_EcuM_02906] [SWS_EcuM_02932]. 하드웨어 관련 단계는 Integration Code가 콜아웃(예: 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이 인수 SHUTDOWN SHUTDOWN (OffPreOS, OffPostOS) UP->SHUTDOWN 목표 RESET 또는 OFF SLEEP SLEEP (GoSleep, Halt 또는 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

상태 다이어그램: ECU는 STARTUP, UP, SHUTDOWN 및 SLEEP을 거칩니다. SLEEP에서는 WakeupRestart를 통해 UP으로 복귀합니다. 출처: RS ModeManagement 15쪽, [SWS_EcuM_91005], [SWS_EcuM_02963]

EcuM은 상태 전환을 자체적으로 결정하지 않습니다. 구성된 사용자의 RUN 및 POST_RUN 요청을 수집하고 그 결과를 BswM에 보고합니다. BswM의 상태 변경은 EcuM_SetState을 통해 인수하여 RTE로 전달합니다 [SWS_EcuM_04144] [SWS_EcuM_04117] [SWS_EcuM_04116] SWS EcuM 103쪽. EcuM_SelectShutdownTarget는 목표인 SLEEP, RESET 또는 OFF를 나중을 위해 저장할 뿐입니다 [SWS_EcuM_02585]. 셧다운 시 OffPreOS는 BswM과 SchM을 초기화 해제하고 웨이크업 이벤트를 확인한 후 OS를 종료합니다. 이후 셧다운 훅이 EcuM_Shutdown을 호출하며, 이는 EcuM_AL_Reset 또는 EcuM_AL_SwitchOff로 끝납니다 [SWS_EcuM_03021] [SWS_EcuM_04074] [SWS_EcuM_04075].

SLEEP 단계는 EcuM_GoDownHaltPoll으로 시작합니다. 먼저 GoSleep이 슬립 모드의 웨이크업 소스를 활성화합니다. 그 후 RAM 해시 검사를 포함한 Halt 또는 EcuM_SleepActivity 및 EcuM_CheckWakeup에 대한 루프가 있는 Poll이 이어집니다. 마지막은 EcuM_AL_DriverRestart [SWS_EcuM_91002] [SWS_EcuM_02389] [SWS_EcuM_02863] [SWS_EcuM_03020] [SWS_EcuM_02963]을 포함하는 WakeupRestart입니다. 이 단계에서는 웨이크업 이벤트가 누락되어서는 안 됩니다 [SWS_EcuM_02188].

웨이크업 소스는 EcuM_WakeupSourceType의 개별 비트이며, 각각 NONE, PENDING, VALIDATED 또는 EXPIRED 상태 중 하나를 갖습니다 [SWS_EcuM_04040] [SWS_EcuM_04091]. 드라이버는 EcuM_SetWakeupEvent을 통해 이벤트를 보고합니다. 유효성 검사가 구성된 경우 EcuM은 타임아웃을 시작합니다. 타임아웃 만료 전의 EcuM_ValidateWakeupEvent만이 VALIDATED로 이어지며, 채널 참조가 구성된 경우 ComM에도 정보가 전달됩니다. 그렇지 않으면 해당 소스는 EXPIRED가 됩니다 [SWS_EcuM_02709] [SWS_EcuM_02645] [SWS_EcuM_04082].

validierung a Treiber erkennt Weckereignis: EcuM_SetWakeupEvent(sources) b 소스가 선택된 슬립 모드에 속하는가? a->b x Ereignis ignorieren b->x 아니요 c Validierung konfiguriert? (EcuMValidationTimeout) b->c 예 e Bits in Pending-Variable setzen, quellenspezifischen Timeout starten c->e 예 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 예 i Timeout abgelaufen? g->i 아니요 i->f 아니요 j Expired-Bit setzen, BswM_EcuM_CurrentWakeup(EXPIRED), EcuM_StopWakeupSources() i->j 예

액티비티 다이어그램: 웨이크업 이벤트는 즉시 유효성 검증을 거치거나, 확인이 수신되거나 타임아웃이 만료될 때까지 PENDING 상태로 유지됩니다. 출처: SWS EcuM 63쪽, [SWS_EcuM_02566], [SWS_EcuM_04082]

오류 발생 시 구성이 일관되지 않거나 RAM 검사에 실패하면 EcuM은 콜아웃 EcuM_ErrorHook을 호출합니다 [SWS_EcuM_04033] [SWS_EcuM_91003]. 다중 요청이나 알 수 없는 웨이크업 소스와 같은 개발 오류는 DET에 보고합니다 [SWS_EcuM_03024] [SWS_EcuM_02867].

ECU State Manager의 역할 및 시스템 경계

ECU State Manager(EcuM)는 Classic Platform에서 ECU 수명 주기의 프레임워크를 제공합니다. 운영체제가 시작될 때까지 기본 소프트웨어를 초기화합니다. 이후 ECU를 셧다운 목표인 SLEEP, RESET 또는 OFF 중 하나로 제어하며 유도합니다 [SWS_EcuM_04136]. EcuM의 상태는 EcuM_StateType에 의해 STARTUP, RUN, POST_RUN, SHUTDOWN 및 SLEEP으로 정의됩니다 [SWS_EcuM_91005]. 이러한 상태는 초기 모드가 STARTUP인 모드 선언 그룹 EcuM_Mode을 통해 SW-C에 보고됩니다 [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이 인수 SHUTDOWN SHUTDOWN (OffPreOS, OffPostOS) UP->SHUTDOWN 목표 RESET 또는 OFF SLEEP SLEEP (GoSleep, Halt 또는 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

상태 다이어그램: ECU는 STARTUP, UP, SHUTDOWN 및 SLEEP을 거칩니다. SLEEP에서는 WakeupRestart를 통해 UP으로 복귀하고, 하드웨어 리셋 또는 파워 사이클 후에는 STARTUP에서 다시 시작합니다. 출처: RS ModeManagement 15쪽, [SWS_EcuM_91005], [SWS_EcuM_02963], [SWS_EcuM_04001]

상태 전환은 EcuM이 자체적으로 결정하지 않습니다. EcuM은 자체 상태 머신을 갖지 않으며, 요청을 중재만 하고 전환은 BSW Mode Manager(BswM)에 맡깁니다 SWS EcuM 103쪽. 하드웨어 관련 및 프로젝트별 단계는 EcuM_Externals.h을 통해 제공되는 Integration Code의 콜아웃으로 위임합니다. 그 예로 EcuM_AL_DriverInitZero 및 EcuM_AL_SwitchOff이 있습니다 [SWS_EcuM_02905] [SWS_EcuM_02920]. 인접 모듈의 인터페이스는 가져온 함수 테이블에 나열되어 있으며, BswM_EcuM_CurrentWakeup, Can_Init 및 Det_ReportError 등이 이에 해당합니다 [SWS_EcuM_02858] [SWS_EcuM_02859].

kontext EcuM EcuM SWC SW-C (RTE 포트를 통해) 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 웨이크업 소스를 가진 드라이버 (예: CanTrcv, Icu, Gpt) Drv->EcuM EcuM_SetWakeupEvent, EcuM_ValidateWakeupEvent

컨텍스트 다이어그램: EcuM은 SW-C, BswM, Integration Code, OS, MCAL 드라이버 및 ComM 사이에 위치합니다. 전환은 BswM이 결정하고, 하드웨어 단계는 Integration Code가 실행합니다. 출처: SWS EcuM 34쪽, [SWS_EcuM_02858], [SWS_EcuM_04135]

기동: StartPreOS, StartPostOS 및 구성 데이터

EcuM_Init 이전에는 EcuM이 최소한의 MCU 초기화만을 전제로 합니다: 스택이 설정되고 C 변수가 초기화된 상태입니다 SWS EcuM 39쪽. EcuM_Init는 StartPreOS 시퀀스를 실행하며, StartOS을 호출하기 때문에 반환되지 않습니다 [SWS_EcuM_02811] [SWS_EcuM_02684]. 이 과정에서 OS 시작에 필요한 모든 모듈이 초기화됩니다 [SWS_EcuM_02603].

Init Block 0(EcuM_AL_DriverInitZero)은 포스트 빌드 데이터 로드를 준비합니다. 따라서 사전 컴파일 시간 또는 링크 시간에 구성된 모듈만 사용할 수 있습니다 [SWS_EcuM_02905]. 그 후 EcuM_DeterminePbConfiguration는 EcuM_ConfigType에 대한 포인터를 반환합니다. 이 구조체는 다른 모든 BSW 모듈의 구성을 참조합니다 [SWS_EcuM_02906] [SWS_EcuM_02801]. 이 구조체에는 변형 식별자와 해시가 포함되어 있습니다. EcuM은 포스트 빌드 구성 가능한 모든 모듈에 대해 이들 중 첫 번째 모듈이 초기화되기 전에 이 해시를 ECUM_CONFIGCONSISTENCY_HASH과 비교하여 검사합니다 [SWS_EcuM_02794] [SWS_EcuM_02798] [SWS_EcuM_02796].

Init Block 1(EcuM_AL_DriverInitOne)은 파워 온 리셋 후 드라이버들을 초기화하며, 여기에는 MCU가 포함됩니다[SWS_EcuM_02907] SWS EcuM 146쪽. 두 블록 내의 순서는 EcuMDriverInitListZero 및 EcuMDriverInitListOne에서 정의합니다. 각 Init 함수는 연관된 EcuMModuleService 컨테이너로부터 매개변수를 가져옵니다[SWS_EcuM_02559] [SWS_EcuM_02730]. EcuM은 Mcu 드라이버의 리셋 원인을 웨이크업 소스로 변환하여 저장합니다. 원인을 확인할 수 없는 경우 ECUM_WKSOURCE_RESET [SWS_EcuM_02623] [SWS_EcuM_02601]을(를) 설정합니다. EcuMResetLoopDetection이(가) 설정되어 있으면 EcuM은 매 시작 시 콜아웃 EcuM_LoopDetection을(를) 호출합니다[SWS_EcuM_04137].

기동: StartPreOS 및 StartPostOSBootloaderEcuMIntegration CodeMcuOsSchMBswMUse Case: StartPreOS (EcuM_Init)EcuM_Init()EcuM_AL_DriverInitZero()EcuM_DeterminePbConfiguration()const EcuM_ConfigType*구성 데이터의 일관성 검사optKonfigurationsdaten inkonsistentEcuM_ErrorHook(ECUM_E_CONFIGURATION_DATA_INCONSISTENT)EcuM_AL_DriverInitOne()Mcu_GetResetReason()리셋 원인을 웨이크업 소스에 매핑StartOS(ECUM_DEFAULT_APP_MODE)Use Case: StartPostOS (EcuM_StartupTwo)EcuM_StartupTwo()(StartOS 후 태스크에서)SchM_Init / SchM_Start / SchM_StartTimingBswM_Init()

시퀀스 다이어그램: EcuM_Init이(가) Init Block 0, 구성 선택 및 검증, Init Block 1, 리셋 평가를 거쳐 StartOS까지 진행합니다. 그 후 EcuM_StartupTwo이(가) SchM 및 BswM을 시작합니다. 출처: SWS EcuM 38쪽, SWS EcuM 78쪽, [SWS_EcuM_02684], [SWS_EcuM_02932]

OS 시작 후, StartOS의 결과로 직접 시작된 태스크가 EcuM_StartupTwo을(를) 호출합니다[SWS_EcuM_02806]. 이 함수는 StartPostOS를 실행합니다. 즉, SchM을 초기화 및 시작하고 BswM_Init을(를) 호출합니다[SWS_EcuM_02932] SWS EcuM 42쪽. 추가 초기화는 BswM이 생성된 함수 EcuM_AL_DriverInitBswM_<x> [SWS_EcuM_04114]을(를) 통해 수행합니다.

멀티코어 ECU에서는 코어당 하나의 EcuM 인스턴스가 실행되며, 마스터 EcuM이 나머지 코어들을 시작합니다. Init Block 0 및 1은 각 코어에서 실행되지만, 해당 코어의 MCAL 모듈만 초기화합니다. SchM, OS 및 모든 코어 로컬 BswM은 각 코어에서 시작됩니다[SWS_EcuM_04145] [SWS_EcuM_04093] [SWS_EcuM_04014] SWS EcuM 71쪽.

RUN 및 POST_RUN: 사용자 요청 및 BswM과의 중재

EcuMModeHandling이(가) 활성화되어 있으면 사용자는 RUN 및 POST_RUN을 요청하고 다시 해제할 수 있습니다[SWS_EcuM_04115] [SWS_EcuM_04130]. 이를 위해 EcuM_RequestRUN, EcuM_ReleaseRUN, EcuM_RequestPOST_RUN 및 EcuM_ReleasePOST_RUN이(가) 사용됩니다. 네 가지 모두 EcuM_UserType 타입의 구성된 사용자 ID를 필요로 합니다[SWS_EcuM_04124] [SWS_EcuM_04127] [SWS_EcuM_04128] [SWS_EcuM_04129]. EcuM은 사용자별로 요청을 추적하며, 사용자는 요청을 중첩할 수 없습니다. RUN 및 POST_RUN 요청은 별도의 변수로 관리됩니다[SWS_EcuM_04126] [SWS_EcuM_04125] SWS EcuM 116쪽. SW-C는 포트 StateRequest_{UserName} [SWS_EcuM_04135]을(를) 통해 이러한 서비스에 접근합니다.

EcuM은 첫 번째 RUN 또는 POST_RUN 요청을 BswM_EcuM_RequestedState(ECUM_STATE_APP_RUN, ECUM_RUNSTATUS_REQUESTED)을(를) 통해 BswM에 전달합니다. RUN 또는 POST_RUN의 마지막 해제는 각각의 상태 및 ECUM_RUNSTATUS_RELEASED을(를) 통해 전달합니다[SWS_EcuM_04144] [SWS_EcuM_04117] [SWS_EcuM_04119]. BswM은 규칙을 평가하고 EcuM_SetState을(를) 통해 새 상태를 설정합니다. 그 후 EcuM은 RTE에 적절한 모드를 표시하고 피드백을 받은 뒤 BswM_EcuM_CurrentState [SWS_EcuM_04122] [SWS_EcuM_04116] [SWS_EcuM_04143]을(를) 알립니다. 모드 관리 가이드에서는 RUN이 해제되는 즉시 POST_RUN으로 전환되는 것과 같은 적절한 BswM 규칙을 보여줍니다Mode-Management-Guide 34쪽.

EcuM과 BswM 간의 RUN/POST_RUN 중재SW-C (EcuM-Nutzer)RTEEcuMBswMUse Case: AnforderungEcuM_RequestRUN(user)StateRequest_{UserName} 포트를 통해E_OK첫 번째 RUN 또는 POST_RUN 요청BswM_EcuM_RequestedState(ECUM_STATE_APP_RUN, ECUM_RUNSTATUS_REQUESTED)규칙 평가가 전환을 결정함EcuM_SetState(state)Rte_Switch_currentMode_currentMode(mode)Acknowledgement 포트를 통한 피드백BswM_EcuM_CurrentState(state)Use Case: 풀어 주다EcuM_ReleaseRUN(user)letzte RUN-Anforderung freigegebenBswM_EcuM_RequestedState(ECUM_STATE_APP_RUN, ECUM_RUNSTATUS_RELEASED)EcuM_SetState(state)예: POST_RUN으로 전환

시퀀스 다이어그램: EcuM이 사용자 요청을 중재하고 그 결과를 BswM에 전달합니다. BswM은 EcuM_SetState을(를) 통해 상태를 반환하고, EcuM은 이를 RTE로 전달합니다. 출처: [SWS_EcuM_04144], [SWS_EcuM_04117], [SWS_EcuM_04116], [SWS_EcuM_04143]

Shutdown 타깃 및 OffPreOS와 OffPostOS를 통한 전원 차단

EcuM_SelectShutdownTarget은(는) 이후의 SHUTDOWN 또는 SLEEP 단계를 위해서만 타깃과 모드를 저장하며, 자체적으로 아무것도 트리거하지 않습니다[SWS_EcuM_02822] [SWS_EcuM_00624] [SWS_EcuM_02585]. 모드 매개변수는 타깃이 SLEEP일 때는 구성된 수면 모드를 선택하고, 타깃이 RESET일 때는 리셋 모드를 선택합니다. OFF인 경우에는 무시됩니다[SWS_EcuM_02979] [SWS_EcuM_02185]. 리셋 모드에는 최소한 Mcu_PerformReset, WdgM_PerformReset 및 I/O 핀 토글이 포함됩니다[SWS_EcuM_04005] [SWS_EcuM_04044]. Shutdown 원인은 EcuM_SelectShutdownCause(으)로 기록됩니다[SWS_EcuM_04007] [SWS_EcuM_04050]. EcuM_GetLastShutdownTarget은(는) 가장 최근에 웨이크업되었거나 부팅된 타깃을 반환합니다. 이 값은 다음 Shutdown까지 변경되지 않고 유지됩니다[SWS_EcuM_02156].

SHUTDOWN 단계는 OFF 또는 RESET으로 끝납니다[SWS_EcuM_03022]. 타깃이 설정되는 시점은 일반적으로 BswM이 결정합니다SWS EcuM 66쪽. OffPreOS에서는 BswM 및 SchM이 초기화 해제되고 웨이크업 이벤트가 확인됩니다. 대기 중인 이벤트가 있으면 RESET이 타깃으로 설정됩니다. 마지막 동작은 ShutdownOS [SWS_EcuM_03021] [SWS_EcuM_02952] SWS EcuM 49쪽입니다.

이어서 Shutdown 훅이 반환되지 않는 EcuM_Shutdown을(를) 호출합니다. EcuM_OnGoOffTwo 이후 타깃이 RESET인 경우에는 EcuM_AL_Reset이(가) 따르고, 타깃이 OFF인 경우에는 EcuM_AL_SwitchOff [SWS_EcuM_02953] [SWS_EcuM_02917] [SWS_EcuM_04074] [SWS_EcuM_04075]이(가) 따릅니다. 해석: 반환값 설명에서 Shutdown 타깃에 따라 구분하고 있으므로, RESET 및 OFF의 경우에도 BswM이 EcuM_GoDownHaltPoll을(를) 통해 해당 단계를 트리거할 것으로 추정됩니다[SWS_EcuM_91002]. 질문 Q-29bca5a7c6e82c98 (열림)

OffPreOS 및 OffPostOS를 통한 전원 차단BswMEcuMSchMOsIntegration CodeEcuM_SelectShutdownTarget(target, mode)E_OKEcuM_GoDownHaltPoll(UserID)해석: RESET/OFF 시에도 트리거됨Use Case: OffPreOSBswM_Deinit()SchM_Deinit()웨이크업 이벤트 검사 (pending 또는 유효성 검증됨,EcuMIgnoreWakeupEvValOffPreOS에 따름)optWeckereignisse anstehendShutdown-Ziel RESET setzen(EcuMDefaultResetModeRef)ShutdownOS()Use Case: OffPostOSEcuM_Shutdown()Shutdown 훅에서EcuM_OnGoOffTwo()altShutdown-Ziel RESETEcuM_AL_Reset(EcuM_ResetType)Shutdown-Ziel OFFEcuM_AL_SwitchOff()

시퀀스 다이어그램: OffPreOS가 BswM 및 SchM을 초기화 해제하고, 웨이크업 이벤트를 확인한 후 OS를 종료합니다. 이후 OffPostOS는 Shutdown 타깃에 따라 리셋 또는 전원 차단으로 분기합니다. 출처: SWS EcuM 49쪽, SWS EcuM 49쪽, [SWS_EcuM_02953], [SWS_EcuM_91002]

SLEEP 단계: GoSleep, Halt 또는 Poll 및 WakeupRestart

SLEEP이 타깃으로 선택되면 EcuM_GoDownHaltPoll이(가) SLEEP 단계를 시작합니다. 호출자는 사전에 적절한 타깃을 설정해야 합니다[SWS_EcuM_91002] SWS EcuM 54쪽. GoSleep에서 EcuM은 EcuM_EnableWakeupSources을(를) 통해 타깃 수면 모드의 EcuMWakeupSourceMask에 있는 모든 웨이크업 소스를 활성화합니다. 멀티코어 ECU에서는 추가로 코어별 리소스 RES_AUTOSAR_ECUM을(를) 점유합니다. Shutdown과 달리 OS는 활성 상태를 유지합니다[SWS_EcuM_02389] [SWS_EcuM_03010] [SWS_EcuM_02951]. 어떤 웨이크업 이벤트도 유실되어서는 안 됩니다. GoSleep 도중에 이미 이벤트가 발생한 경우 Halt 및 Poll은 건너뜁니다[SWS_EcuM_02188].

마이크로컨트롤러를 정지시키는 수면 모드는 Halt 시퀀스를 거칩니다. 그 전에 EcuM은 EcuM_GenerateRamHash을(를) 호출하고, 그 후에 EcuM_CheckRamHash [SWS_EcuM_02960] [SWS_EcuM_02863]을(를) 호출합니다. 반면 클록이 감소된 수면 모드는 Poll 시퀀스를 사용합니다. 이는 이벤트가 pending 또는 유효한 것으로 보고될 때까지 차단 루프에서 EcuM_SleepActivity 및 EcuM_CheckWakeup을(를) 호출합니다[SWS_EcuM_02962] [SWS_EcuM_03020]. R20-11에서 EcuM_CheckWakeup은(는) 여전히 콜아웃입니다. R21-11부터 비로소 이 콜아웃의 이름이 EcuM_CheckWakeupHook [SWS_EcuM_02929] SWS EcuM 145쪽(으)로 변경되었습니다.

웨이크업 이벤트는 WakeupRestart 시퀀스로 이어집니다[SWS_EcuM_02963] SWS EcuM 56쪽:

  1. MCU가 정상 모드로 복귀합니다.
  2. EcuM_DisableWakeupSources이(가) 현재 대기 중인 웨이크업 소스를 비활성화하며, 다른 모든 소스는 활성화된 상태를 유지합니다[SWS_EcuM_02922].
  3. EcuM_AL_DriverRestart이(가) 영향을 받는 드라이버들을 재초기화합니다[SWS_EcuM_02923].
  4. 스케줄러가 다시 해제됩니다.

반면 수면 중에 하드웨어 리셋이나 파워 사이클이 발생하면 ECU는 STARTUP에서 다시 시작합니다[SWS_EcuM_04001].

SLEEP 단계: GoSleep, Halt 또는 Poll, WakeupRestartBswMEcuMIntegration CodeOsMcuWeckquelle (Treiber)EcuM_SelectShutdownTarget(SLEEP, Schlafmodus)EcuM_GoDownHaltPoll(UserID)Use Case: GoSleepEcuM_EnableWakeupSources(슬립 모드의 EcuMWakeupSourceMask)BswM_EcuM_CurrentWakeup(sources, ECUM_WKSTATUS_NONE)GetResource(RES_AUTOSAR_ECUM_<core#>)alt슬립 모드가 µC를 정지시킴 (Halt)EcuM_GenerateRamHash()Mcu_SetMode(Schlafmodus)웨이크업 인터럽트 발생 시까지 HALTEcuM_CheckRamHash()감소된 클록을 사용하는 슬립 모드 (Poll)Mcu_SetMode(Schlafmodus)looppending이거나 유효성 검증된 이벤트 없음EcuM_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#>)

시퀀스 다이어그램: GoSleep이 웨이크업 소스를 준비하고, Halt 또는 Poll이 수면을 구현하며, WakeupRestart가 UP 상태로 되돌립니다. 출처: SWS EcuM 52쪽, SWS EcuM 85쪽, SWS EcuM 87쪽, SWS EcuM 58쪽

선택적으로 EcuM은 배터리 연결 이후의 초를 카운트하는 시계를 유지합니다[SWS_EcuM_04069]. 각 사용자는 최대 하나의 웨이크업 알람을 설정할 수 있습니다. 마스터 알람은 항상 가장 빠른 사용자 알람과 일치합니다[SWS_EcuM_04070] [SWS_EcuM_04072]. EcuM_SetAbsWakeupAlarm은(는) ECUM_E_EARLIER_ACTIVE(으)로 더 늦은 시점을 거부하고, ECUM_E_PAST(으)로 이미 지난 시점을 거부합니다[SWS_EcuM_04059] [SWS_EcuM_04060]. SLEEP을 종료할 때 EcuM은 모든 알람을 폐기합니다[SWS_EcuM_04009].

웨이크업 소스: 상태, 검증 및 조회

EcuM은 EcuM_WakeupSourceType 타입의 비트마스크로 최대 32개의 웨이크업 소스를 관리합니다. 5개의 비트가 사전 정의되어 있으며, 여기에는 ECUM_WKSOURCE_POWER 및 ECUM_WKSOURCE_RESET이(가) 포함됩니다. 추가 소스에는 EcuMWakeupSourceId을(를) 통해 비트 5부터 31까지가 할당됩니다[SWS_EcuM_04040] [SWS_EcuM_02165] [SWS_EcuM_02166] SWS EcuM 63쪽. 각 소스는 NONE, PENDING, VALIDATED 또는 EXPIRED 상태 중 하나에 위치합니다[SWS_EcuM_04091] [SWS_EcuM_04041]. EcuM은 모든 상태 변경을 BswM에 모드 요청으로 보고합니다[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 [유효성 검증 포함] VALIDATED ECUM_WKSTATUS_VALIDATED entry: BswM_EcuM_CurrentWakeup(sources, VALIDATED) entry: ComM_EcuM_WakeUpIndication() NONE->VALIDATED EcuM_SetWakeupEvent [유효성 검증 미포함] 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

상태 다이어그램: 웨이크업 소스는 NONE에서 PENDING을 거쳐 VALIDATED 또는 EXPIRED로 전환됩니다. 모든 상태 변경은 BswM에 보고되며, EcuM_ClearWakeupEvent은(는) 소스를 NONE으로 리셋합니다. 출처: SWS EcuM 60쪽, [SWS_EcuM_04091], [SWS_EcuM_02683]

드라이버는 감지된 이벤트를 EcuM_SetWakeupEvent을(를) 통해 정확히 한 번 보고합니다SWS EcuM 71쪽. 이 함수는 인터럽트 컨텍스트 및 OS가 없는 컨텍스트에서도 호출될 수 있습니다. 전달된 비트를 OR 연산하여 Pending 변수에 설정합니다. 선택된 수면 모드에 속하지 않는 소스는 무시합니다[SWS_EcuM_02826] [SWS_EcuM_02171] [SWS_EcuM_01117] [SWS_EcuM_04138].

이벤트를 검증해야 하는 경우, EcuM은 EcuMValidationTimeout에 따라 소스별 타임아웃을 시작합니다. 동일한 소스가 다시 보고되더라도 타임아웃은 다시 시작되지 않습니다[SWS_EcuM_02975] [SWS_EcuM_02565] [SWS_EcuM_02709] [SWS_EcuM_02712]. 특정 소스에 대해 검증이 구성되어 있지 않은 경우, EcuM_SetWakeupEvent은(는) 동시에 EcuM_ValidateWakeupEvent처럼 동작합니다. 사전 정의된 5개의 소스는 결코 검증되지 않습니다[SWS_EcuM_02566] [SWS_EcuM_02625].

검증 자체는 EcuM_MainFunction에서 실행되며, 이를 위해 콜아웃 EcuM_CheckValidation을(를) 호출합니다[SWS_EcuM_02539] [SWS_EcuM_02925] SWS EcuM 64쪽. EcuM_ValidateWakeupEvent은(는) 다음과 같은 효과를 가집니다[SWS_EcuM_02710] [SWS_EcuM_04078] [SWS_EcuM_04079] [SWS_EcuM_02645] [SWS_EcuM_04140]:

  • 타임아웃을 중지하고 Validated 변수의 해당 비트를 설정합니다.
  • BswM에 ECUM_WKSTATUS_VALIDATED을(를) 보고합니다.
  • 채널 또는 PNC가 구성된 경우 ComM_EcuM_WakeUpIndication 또는 ComM_EcuM_PNCWakeUpIndication을(를) 호출합니다.

타임아웃이 만료되면 메인 함수는 Expired 비트를 설정하고 ECUM_WKSTATUS_EXPIRED을(를) 보고합니다[SWS_EcuM_04081] [SWS_EcuM_04082]. RUN 상태에서는 통신 채널에 대해서만 검증이 적용됩니다[SWS_EcuM_02790] [SWS_EcuM_02791].

validierung a Treiber erkennt Weckereignis: EcuM_SetWakeupEvent(sources) b 소스가 선택된 슬립 모드에 속하는가? a->b x Ereignis ignorieren b->x 아니요 c Validierung konfiguriert? (EcuMValidationTimeout) b->c 예 e Bits in Pending-Variable setzen, quellenspezifischen Timeout starten c->e 예 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 예 i Timeout abgelaufen? g->i 아니요 i->f 아니요 j Expired-Bit setzen, BswM_EcuM_CurrentWakeup(EXPIRED), EcuM_StopWakeupSources() i->j 예

액티비티 다이어그램: 검증이 필요 없는 소스의 경우 이벤트가 즉시 검증됩니다. 나머지 소스의 경우 EcuM_ValidateWakeupEvent이(가) 도착하거나 타임아웃이 만료되어 소스가 EXPIRED가 될 때까지 PENDING 상태로 유지됩니다. 출처: SWS EcuM 63쪽, SWS EcuM 78쪽, [SWS_EcuM_02566], [SWS_EcuM_04082]

현재 상태는 EcuM_GetPendingWakeupEvents, EcuM_GetValidatedWakeupEvents 및 EcuM_GetExpiredWakeupEvents에서 조회합니다. EcuM_ClearWakeupEvent은(는) 세 변수 모두에서 전달된 비트를 삭제합니다[SWS_EcuM_01156] [SWS_EcuM_02533] [SWS_EcuM_04076] [SWS_EcuM_02683].

일부 웨이크업 소스는 통합 전원 공급 장치를 갖추고 있어 이들의 웨이크업은 파워 온 리셋처럼 동작합니다. 이러한 소스를 위해 EcuM_StartCheckWakeup은(는) 조기 전원 차단을 방지하는 CheckWakeupTimer를 시작합니다. EcuM_SetWakeupEvent 또는 EcuM_EndCheckWakeup이(가) 타이머를 다시 종료합니다[SWS_EcuM_04096] [SWS_EcuM_04098] [SWS_EcuM_02927] SWS EcuM 70쪽.

오류가 발생한 경우의 동작

복구 불가능한 오류는 EcuM이 콜아웃 EcuM_ErrorHook 및 해당 오류 코드 [SWS_EcuM_04033]을(를) 통해 보고합니다[SWS_EcuM_02904]. R20-11에는 이를 위한 두 가지 코드가 있습니다[SWS_EcuM_91003] [SWS_EcuM_02987]:

  • 포스트 빌드 데이터가 불일치할 때 ECUM_E_CONFIGURATION_DATA_INCONSISTENT.
  • 웨이크업 후 RAM 검사에 실패했을 때 ECUM_E_RAM_CHECK_FAILED.

OS 호출에 실패하면 EcuM은 요청된 상태를 유지하고 ErrorHook 또한 호출합니다[SWS_EcuM_04139]. 별도의 코드 ECUM_E_OS_CALL_FAILED 및 해당 훅이 반환되지 않는다는 참고 사항은 사양의 후속 버전에서 비로소 포함되었습니다SWS EcuM 102쪽. EcuM은 초기화 도중 발생한 오류(예: Init 함수의 반환값)를 무시합니다[SWS_EcuM_02980].

개발 오류 감지가 활성화된 경우 모든 함수는 매개변수와 실행 조건을 검사합니다. 이를 위해 ECUM_E_UNINIT, ECUM_E_SERVICE_DISABLED, ECUM_E_PARAM_POINTER 및 ECUM_E_INVALID_PAR을(를) 사용할 수 있습니다[SWS_EcuM_03009]. EcuM은 추가적인 경우를 DET에 보고합니다:

전원 차단 중 웨이크업 이벤트가 발생하면 EcuM은 Shutdown을 완료하고 즉시 다시 시작합니다[SWS_EcuM_02756]. ECU가 EcuM_AL_SwitchOff에서 자체적으로 전원을 차단할 수 없는 경우, 리셋이 적절한 반응입니다[SWS_EcuM_02920] SWS EcuM 141쪽.

더 자세한 증거

본 가이드는 EcuM 모듈(Classic Platform, R20-11) 관련 사양 발췌본을 바탕으로 AI 지원을 받아 작성되었습니다. 링크된 요구사항이 기준이 되며, 해석으로 표시된 진술은 규범적으로 검증된 것이 아닙니다.

ECU State Manager (EcuM)

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

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 71091e858c55 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 및 재진입 가능 함수인 EcuM_GoDownHaltPoll은 이전에 선택된 셧다운 대상에 따라 슬립 모드, 리셋 또는 OFF 상태로 전환하도록 ECU State Manager 모듈에 지시합니다([SWS_EcuM_91002]). 헤더 파일 EcuM.h를 통해 제공되며 서비스 ID 0x2c을 갖습니다([SWS_EcuM_91002]).

매개변수 및 호출 권한

유일한 입력 매개변수로 EcuM_UserType 타입의 UserID이 전달됩니다. 이는 호출 사용자를 식별합니다. 호출은 엄격히 규제되며, 사전 구성된 사용자만이 이 함수를 실행할 수 있습니다([SWS_EcuM_91002]).

반환값 및 동작 특성

반환 동작은 설정된 셧다운 대상의 종류에 크게 의존합니다([SWS_EcuM_91002]):

  • E_NOT_OK: 요청이 수락되지 않았습니다[SWS_EcuM_91002].
  • E_OK: 대상이 SLEEP인 경우, 함수는 슬립 상태를 종료한 후 이 상태와 함께 성공적으로 반환됩니다([SWS_EcuM_91002]).
  • 반환 없음: 셧다운 대상으로 RESET 또는 OFF이 선택된 경우, 함수 호출은 더 이상 호출자에게 반환되지 않습니다([SWS_EcuM_91002]).

제약 사항 및 오류 처리

비록 이 함수가 형식상 재진입 가능으로 선언되어 있지만, 의도된 실행을 위해서는 유효한 셧다운 대상의 사전 설정이 전제됩니다([SWS_EcuM_91002]). 특정 DET 또는 DEM 오류 코드는 인터페이스 사양에 나열되어 있지 않으며, 요청의 실패 또는 거부는 반환값 E_NOT_OK을 통해 즉시 표시됩니다([SWS_EcuM_91002]).

이 사용 지침은 AUTOSAR 사양을 바탕으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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)

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 0b36a0aa946f 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 서비스 함수 EcuM_Init은(는) ECU State Manager를 초기화하고 제어기의 정돈된 시동 절차를 시작합니다([SWS_EcuM_02811]). 이 함수는 헤더 EcuM.h을(를) 통해 서비스 ID 0x01(으)로 선언되며 매개변수를 받지 않고 반환값을 반환하지 않습니다([SWS_EcuM_02811]). 형식상 재진입 가능한 것으로 분류되지만, StartOS을(를) 호출하여 운영체제에 실행을 넘겨주기 때문에 호출 후 EcuM_Init은(는) 호출자에게 결코 반환되지 않습니다([SWS_EcuM_02811]).

실행의 일환으로 함수는 정의된 StartPreOS 시퀀스와 해당 작업을 정확히 지정된 순서대로 처리합니다([SWS_EcuM_02411], [SWS_EcuM_02684]). 이 단계의 필수 구성 요소는 구성 일관성 검사입니다. 모듈은 EcuM_Init 내에서 해당 구조체 필드가 ECUM_CONFIGCONSISTENCY_HASH의 값과 동일한지 확인합니다([SWS_EcuM_02798]).

또한 EcuM_Init은(는) 멀티코어 시스템에서 드라이버의 초기화를 제어합니다([SWS_EcuM_04145]). 이 함수는 각 개별 코어에서 콜아웃 EcuM_AL_DriverInitZero 및 EcuM_AL_DriverInitOne을(를) 호출합니다([SWS_EcuM_04145]). 콜아웃 구현의 경우 활성 코어에서 실제로 해당 코어에서 실행되는 MCAL 모듈만 초기화되도록 보장해야 하는 규정이 적용됩니다([SWS_EcuM_04145]).

이 사용 지침은 AUTOSAR Classic R20-11 사양을 기반으로 자동으로 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 EcuM_StartupTwo [SWS_EcuM_02838] 📄 PDF

void EcuM_StartupTwo (void);

This function implements the STARTUP II state.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 537ce9e5d889 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 및 non-reentrant 함수 EcuM_StartupTwo은(는) ECU State Manager의 STARTUP II 상태를 구현합니다 [SWS_EcuM_02838]. 인터페이스는 헤더 파일 EcuM.h을(를) 통해 선언되며 서비스 ID 0x1a을(를) 갖습니다 [SWS_EcuM_02838]. 함수 시그니처 void EcuM_StartupTwo(void)에 따라 호출은 입력 매개변수, 입출력 또는 출력 매개변수를 받지 않으며 호출자에게 반환값을 반환하지 않습니다 [SWS_EcuM_02838].

ECU 관리자 모듈이 함수 EcuM_StartupTwo에 의해 활성화되면 StartPostOS 시퀀스의 동작들을 실행합니다 [SWS_EcuM_02932].

통합을 위해 호출 컨텍스트 및 동시성과 관련된 중요한 요구사항이 존재합니다: 함수는 반드시 StartOS의 직접적인 결과로 시작된 태스크에서 호출되어야 합니다 [SWS_EcuM_02806]. 이를 위해서는 EcuM_StartupTwo의 호출이 자동 시작 태스크(Autostart-Task) 내에서 발생하거나 명시적으로 시작된 태스크에서 발생해야 합니다 [SWS_EcuM_02806]. 함수가 non-reentrant로 명시되어 있으므로 동시 호출이나 다중 호출이 발생해서는 안 됩니다 [SWS_EcuM_02838].

이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 06f5a6c81474 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 서비스 함수 EcuM_Shutdown(서비스 ID 0x02)은(는) 헤더 파일 EcuM.h을(를) 통해 제공되며 "GO OFF II" 단계의 활동을 수행하기 위한 실행 제어를 담당합니다 [SWS_EcuM_02812]. 이는 종료 프로세스를 최종적으로 완료하는 데 사용됩니다 [SWS_EcuM_02953].

호출 컨텍스트 및 시맨틱

일반적으로 이 함수는 Shutdown-Hook에서 호출됩니다 [SWS_EcuM_02812]. 이 훅은 요구사항에 따라 종료 절차를 완료하기 위해 EcuM_Shutdown을(를) 호출해야 할 명시적 의무가 있습니다 [SWS_EcuM_02953].

  • 시그니처: 서비스 ID 0x02을(를) 갖는 void EcuM_Shutdown(void) [SWS_EcuM_02812].
  • 매개변수: 입력, 출력 또는 입출력 매개변수가 존재하지 않습니다 [SWS_EcuM_02812].
  • 반환값: 인터페이스는 반환값을 반환하지 않습니다 [SWS_EcuM_02812].
  • 동기성: 호출은 동기식으로 실행됩니다 [SWS_EcuM_02812].

동시성 및 제어 흐름

명세에서 EcuM_Shutdown은(는) reentrant로 선언되어 있습니다 [SWS_EcuM_02812]. 그러나 프로그램 흐름에 대해서는 EcuM_Shutdown이(가) 호출자에게 반환되어서는 안 된다는 엄격한 요구사항이 적용됩니다 [SWS_EcuM_02953]. 처리 후 함수는 ECU를 최종적으로 끄거나 대안으로 리셋을 트리거합니다 [SWS_EcuM_02953].

이 사용 지침은 AUTOSAR 명세 R20-11을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 EcuM_SetState [SWS_EcuM_04122] 📄 PDF

void EcuM_SetState (EcuM_StateType state);

Function called by BswM to notify about State Switch.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 6ccfd6ea170b 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 호출 컨텍스트

동기식 함수 EcuM_SetState은(는) BswM이 EcuM에 상태 변경을 알리는 데 사용됩니다[SWS_EcuM_04122]. 입력 매개변수로 EcuM_StateType 타입의 state이(가) 전달되며, 이는 BswM에 의해 지정된 상태를 명시합니다[SWS_EcuM_04122]. 이 함수는 반환값이 없습니다[SWS_EcuM_04122].

동작 방식 및 상호작용

호출 시 함수는 EcuM의 내부 상태를 매개변수 state의 값으로 설정합니다[SWS_EcuM_04123]. BswM이 이러한 방식으로 EcuM의 상태를 설정하면, EcuM은 해당 모드를 RTE에 표시합니다[SWS_EcuM_04116].

오류 처리

전달된 매개변수 state의 값이 유효하지 않은 경우, EcuM_SetState은(는) EcuM 상태를 변경하지 않습니다[SWS_EcuM_04123]. Development Error Reporting이 활성화되어 있는 경우, 함수는 이러한 오류 상황에서 추가로 오류 ECUM_E_STATE_PAR_OUT_OF_RANGE을(를) DET 모듈에 보고합니다[SWS_EcuM_04123].

동시성 및 인터페이스

실행은 동기식 및 재진입 가능합니다[SWS_EcuM_04122]. 이 서비스는 헤더 파일 EcuM.h을(를) 통해 선언됩니다[SWS_EcuM_04122].

이 사용 지침은 AUTOSAR Classic R20-11 사양을 기반으로 자동으로 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: edb1d4cba6be 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

동기식 및 재진입 함수 EcuM_RequestRUN은(는) ECU State Manager에 RUN 상태를 요청하는 데 사용됩니다[SWS_EcuM_04124]. 매개변수로는 EcuM_UserType 타입의 user을(를) 통해 요청 엔티티의 식별자가 전달되며, 구성 시점에 상태 관리자에게 이미 알려진 사용자에게만 권한이 부여됩니다[SWS_EcuM_04124]. 함수는 EcuM이 요청을 수락한 경우 E_OK을(를) 반환하고, 그렇지 않으면 E_NOT_OK을(를) 반환합니다[SWS_EcuM_04124]. 이 서비스는 헤더 EcuM.h을(를) 통해 선언됩니다[SWS_EcuM_04124].

오류 처리 및 제한 사항

요청은 중첩될 수 없습니다: 단일 사용자는 한 번에 최대 하나의 활성 RUN 요청만 보유할 수 있습니다[SWS_EcuM_04125]. EcuM_RequestRUN이(가) 동일한 사용자에 의한 반복 또는 중복 호출을 감지하면 개발 오류 감지가 활성화된 경우 오류 코드 ECUM_E_MULTIPLE_RUN_REQUESTS이(가) DET에 보고됩니다[SWS_EcuM_03024], [SWS_EcuM_04125].

상호 작용

EcuM_RequestRUN(으)로 성공적으로 설정된 각 상태 요청은 활동 완료 후 다시 해제되어야 합니다. 이를 위해 동일한 사용자 ID가 전달되는 상호 보완적이고 마찬가지로 동기식 및 재진입 가능한 서비스 EcuM_ReleaseRUN이(가) 제공됩니다[SWS_EcuM_04127].

이 사용 지침은 AUTOSAR 명세 R20-11을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: f2acc7b3a714 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

동기식 함수 EcuM_ReleaseRUN(서비스 ID 0x04)은 이전에 EcuM_RequestRUN을(를) 통해 등록된 RUN 상태 요청을 해제하는 데 사용됩니다[SWS_EcuM_04127]. 이 인터페이스는 헤더 EcuM.h을(를) 통해 제공되며 기본적으로 AUTOSAR 포트 구현을 위해 마련되었습니다[SWS_EcuM_04127]. 입력 매개변수로 이 함수는 모듈 내에서 해제하는 엔터티를 고유하게 식별하는 EcuM_UserType 유형의 사용자 식별자 user을(를) 기대합니다[SWS_EcuM_04127].

Std_ReturnType 유형의 반환값은 E_OK을(를) 통해 해제 요청이 모듈에 의해 성공적으로 수락되었음을 알립니다[SWS_EcuM_04127]. 해제를 처리할 수 없는 경우 서비스는 오류 값 E_NOT_OK을(를) 반환합니다[SWS_EcuM_04127].

오류 처리 및 동시성

특정 오류 코드, 개발 오류(DET) 또는 생산 오류(DEM)는 사양에 나열되어 있지 않습니다. 요청 거부는 오직 E_NOT_OK의 반환을 통해서만 나타납니다[SWS_EcuM_04127]. Annahme(Interpretation:), 지정된 사용자 ID에 대해 활성 요청이 없거나 유효하지 않은 매개변수 값이 전달된 경우 vermutlich E_NOT_OK의 반환이 발생합니다. 질문 Q-cbe9031cffe1be81 (열림)

이 함수는 재진입 가능으로 선언되어 있으므로 동시 실행 컨텍스트에서 호출될 수 있습니다[SWS_EcuM_04127]. 기능적 순서 조건으로서 이 호출은 해당 사용자가 이전에 EcuM_RequestRUN을(를) 통해 상태를 요청했음을 전제 조건으로 반드시 요구합니다[SWS_EcuM_04127].

상호 작용

EcuM 모듈은 정의된 포트를 통해 RUN 상태 유지를 종료하기 위해 이 서비스를 제공합니다[SWS_EcuM_04127]. 사양은 RTE 구성 및 로컬 RTE 런타임 동작과의 상호작용을 위해 동시에 실행 가능한 여러 러너블 엔터티를 포함하는 EcuStateManager의 내부 동작을 정의합니다[SWS_EcuM_03018].

이 텍스트는 AUTOSAR 사양을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 8517014c50a6 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

동기식 함수 EcuM_RequestPOST_RUN은(는) ECU State Manager에 POST RUN 상태를 요청하는 데 사용됩니다([SWS_EcuM_04128]). 호출자는 매개변수 user을(를) 통해 자신을 식별하며, 각 요청 엔티티는 구성 시점에 상태 관리자에게 이미 알려져 있어야 합니다([SWS_EcuM_04128]). 이 서비스는 헤더 EcuM.h에 선언되어 있고, AUTOSAR 포트 구현용으로 제공되며, 성공적인 수락은 E_OK(으)로, 거부는 E_NOT_OK(으)로 응답합니다([SWS_EcuM_04128]).

오류 처리

개발 오류 감지가 활성화된 경우 동일한 사용자가 다시 호출하면 EcuM_RequestPOST_RUN이(가) DET에 오류 ECUM_E_MULTIPLE_RUN_REQUESTS을(를) 보고합니다([SWS_EcuM_03025]). 해석: 이러한 다중 요청의 경우나 유효하지 않은 사용자 ID의 경우, 서비스는 E_NOT_OK(으)로 응답할 것으로 보입니다([SWS_EcuM_04128]). 질문 Q-b5bbd7d5b53e76ba (열림)

동시성 및 상호 작용

이 함수는 재진입 가능(reentrant)하도록 설계되었습니다([SWS_EcuM_04128]). 모듈 내에서는 RUN 및 POST RUN에 대한 요청을 두 개의 독립된 변수를 통해 서로 엄격히 독립적으로 추적해야 합니다([SWS_EcuM_04128]). 이 서비스를 통해 등록된 각 요청은 상호 보완적인 EcuM_ReleasePOST_RUN 호출에 의해 명시적으로 다시 철회될 때까지 POST-RUN 상태를 활성 상태로 유지합니다([SWS_EcuM_04129]).

이 텍스트는 자동으로 생성되었습니다. 모든 기술적 내용은 AUTOSAR 사양을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 5beb0fd73cda 출처 열린 질문 (2)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 의미론

동기식 및 재진입 가능 함수 EcuM_ReleasePOST_RUN([SWS_EcuM_04129])은 이전에 EcuM_RequestPOST_RUN을(를) 사용하여 설정된 POST-RUN 요청을 해제하는 데 사용됩니다. EcuM_UserType 유형의 입력 매개변수 user을(를) 통해 POST-RUN 상태를 다시 해제하는 엔터티의 식별자가 전달됩니다. 인터페이스는 헤더 파일 EcuM.h을(를) 통해 사용할 수 있으며 주로 AUTOSAR 포트 구현을 위해 설계되었습니다([SWS_EcuM_04129]).

반환값 및 오류 처리

이 함수는 상태 Std_ReturnType을(를) 반환합니다([SWS_EcuM_04129]):

  • E_OK: 해제 요청이 ECU State Manager에 의해 성공적으로 수락되었습니다.
  • E_NOT_OK: 해제 요청이 거부되었습니다. Interpretation: 지정된 사용자에 대해 활성 요청이 등록되지 않았거나 유효하지 않은 사용자 식별자가 전달된 경우 vermutlich E_NOT_OK(으)로의 거부가 존재할 것으로 보입니다. 질문 Q-67bd8594612defca (열림)

동시성 및 상호 작용

이 서비스는 재진입 가능([SWS_EcuM_04129])으로 지정되어 있어 여러 엔터티의 동시 호출이 허용됩니다. 이 함수는 EcuM 모듈 내부 동작의 일부입니다([SWS_EcuM_03018]). 이 호출은 엔터티가 이전에 POST RUN 단계를 요청했음을 논리적으로 전제합니다([SWS_EcuM_04129]). Interpretation: 일반적으로 시스템 종료 전 후속 실행 활동이 완료되는 즉시 RTE 포트를 통해 소프트웨어 컴포넌트에서 호출이 이루어질 것으로 보입니다. 질문 Q-81f71656d4debb4a (열림)

이 사용 지침은 AUTOSAR 사양 버전 R20-11을 바탕으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: a39197138cfb 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 서비스 함수 EcuM_SelectShutdownTarget은(는) 제어기의 셧다운 대상을 선택하는 데 사용되며, 헤더 파일 EcuM.h을(를) 통해 그리고 ECU 관리자 모듈의 포트 인터페이스 일부로서 제공됩니다[SWS_EcuM_02822]. 이 호출을 통해 내부 셧다운 대상은 전달된 매개변수 shutdownTarget의 값으로 설정됩니다[SWS_EcuM_00624].

이 함수는 두 개의 입력 매개변수를 필요로 합니다[SWS_EcuM_02822]:

  • shutdownTarget: 선택된 셧다운 대상을 결정합니다[SWS_EcuM_02822].
  • shutdownMode: 구성에 따라 절전 모드(대상이 ECUM_SHUTDOWN_TARGET_SLEEP인 경우) 또는 리셋 메커니즘(대상이 ECUM_SHUTDOWN_TARGET_RESET인 경우)의 식별자를 포함합니다[SWS_EcuM_02822].

이 호출은 즉각적인 설정 또는 실행 활동(Setup)을 시작하지 않으며, 단지 SHUTDOWN 단계 또는 SLEEP 단계에서 나중에 사용하기 위해 값을 저장할 뿐입니다[SWS_EcuM_02585].

동시성과 관련하여 이 함수는 재진입 가능으로 명시되어 있습니다[SWS_EcuM_02822]. ECU State Manager의 RTE 내부 동작에서 해당 러너블 엔터티 SelectShutdownTarget은(는) canbeInvokedConcurrently = TRUE(으)로 선언되어 있어[SWS_EcuM_03018] 병렬 호출이 허용됩니다.

Std_ReturnType 유형의 반환값은 E_OK을(를) 통해 새 셧다운 대상이 성공적으로 설정되었음을 알리고, E_NOT_OK을(를) 통해 적용에 실패했음을 알립니다[SWS_EcuM_02822]. 사양에서는 이 부분에서 E_NOT_OK에 대한 구체적인 오류 원인이나 DET 보고를 명시하지 않고 있습니다. 대상과 모드의 허용되지 않거나 구성되지 않은 조합으로 인해 거부되는 것으로 추정됩니다. 질문 Q-e916f3a6ac0bf47e (열림)

이 텍스트는 AI에 의해 생성되었으며 릴리스 R20-11의 사양을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 518672a867f6 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 함수 EcuM_SelectShutdownCause은(는) ECU 종료 원인을 선택하는 데 사용되며 헤더 파일 EcuM.h을(를) 통해 사용할 수 있습니다[SWS_EcuM_04050].

사용법 및 시맨틱:

  • 매개변수: EcuM_ShutdownCauseType 타입의 입력 매개변수 target은(는) 선택된 종료 원인을 전달합니다[SWS_EcuM_04050].
  • 반환값: Std_ReturnType 타입의 반환값은 E_OK을(를) 통해 새 원인이 성공적으로 설정되었음을 나타내고, E_NOT_OK을(를) 통해 설정에 실패했음을 나타냅니다[SWS_EcuM_04050].
  • 실행: 서비스는 서비스 ID 0x1b 하에서 동기식으로 작동하며 재진입 가능하도록 명세되어 있습니다[SWS_EcuM_04050].

동시성 및 상호작용:

이 함수는 ECU Manager 모듈의 포트 인터페이스의 일부입니다[SWS_EcuM_04050]. 로컬 RTE의 구성을 위해 내부 동작 EcuStateManager에 심볼 EcuM_SelectShutdownCause을(를) 갖는 Runnable Entity SelectShutdownCause이(가) 정의되어 있으며 속성 canbeInvokedConcurrently = TRUE이(가) 할당되어 있습니다[SWS_EcuM_03018].

오류 처리:

명세 범위에는 구체적인 DET 또는 DEM 메시지가 명시되어 있지 않으며, 원인 설정 시의 오류 상태는 오직 반환값 E_NOT_OK을(를) 통해서만 표시됩니다[SWS_EcuM_04050].

이 사용 지침은 자동으로 생성되었으며 AUTOSAR Classic 릴리스 R20-11에 대한 명세 요구사항을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 EcuM_ClearWakeupEvent [SWS_EcuM_02828] 📄 PDF

void EcuM_ClearWakeupEvent (EcuM_WakeupSourceType sources);

Clears wakeup events.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 8efe1e7a60e8 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 서비스 함수 EcuM_ClearWakeupEvent(서비스 ID 0x16)은(는) 웨이크업 이벤트를 리셋하는 데 사용되며 헤더 파일 EcuM.h을(를) 통해 제공됩니다 [SWS_EcuM_02828]. 매개변수로 EcuM_WakeupSourceType 유형의 비트마스크 sources을(를) 받으며 반환값을 갖지 않습니다 [SWS_EcuM_02828].

호출 시 sources에 비트로 설정된 대기 중인 모든 이벤트는 모듈의 세 가지 내부 변수에서 삭제됩니다 [SWS_EcuM_02683]:

  • 대기 중인 웨이크업 이벤트(pending wakeup events)를 위한 내부 변수,
  • 검증된 웨이크업 이벤트(validated events)를 위한 내부 변수, 그리고
  • 만료된 웨이크업 이벤트(expired events)를 위한 내부 변수에서 삭제됩니다 [SWS_EcuM_02683].

호출 컨텍스트와 관련하여 EcuM_ClearWakeupEvent은(는) 인터럽트 컨텍스트, 정규 OS 컨텍스트 및 OS 미사용 컨텍스트에서 유연하게 호출될 수 있습니다 [SWS_EcuM_02807]. 그러나 동시에 이 함수는 구속력 있게 재진입 불가(Non-Reentrant) 및 인터럽트 불가(Non-Interruptible)로 지정되어 있습니다 [SWS_EcuM_02828]. 해석: 이 함수는 다양한 컨텍스트에서 허용되지만 인터럽트될 수 없으므로, 통합자 또는 호출자는 동시 호출이나 서로를 인터럽트하는 호출이 발생하지 않도록 조직적으로 보장해야 할 것으로 추정됩니다. 질문 Q-71a4b1b218505a1c (열림)

이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: a619899b3b6a 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 함수 EcuM_AbortWakeupAlarm은 사용자가 이전에 설정한 웨이크업 알람을 취소하는 데 사용됩니다 [SWS_EcuM_04061]. 이 인터페이스는 헤더 파일 EcuM.h를 통해 사용할 수 있으며 ECU 관리자 모듈의 포트 인터페이스 구성 요소를 형성합니다 [SWS_EcuM_04061].

매개변수 및 반환값

  • user (In): 웨이크업 알람을 취소하려는 사용자의 EcuM_UserType 타입 식별자 [SWS_EcuM_04061]. 입출력 또는 순수 출력 매개변수는 존재하지 않습니다 [SWS_EcuM_04061].
  • E_OK: 서비스가 성공적으로 실행되었으며 알람이 취소되었습니다 [SWS_EcuM_04061].
  • ECUM_E_NOT_ACTIVE: 전달된 사용자에 속하는 활성 알람을 찾을 수 없습니다 [SWS_EcuM_04061].
  • E_NOT_OK: 서비스 실행에 실패했습니다 [SWS_EcuM_04061].

동시성 및 상호 작용

이 함수는 서비스 ID 0x24을 가지며 재진입 가능하도록 지정되어 있습니다 [SWS_EcuM_04061]. 따라서 서로 다른 사용자에 대해 호출이 동시에 발생할 수 있습니다. ECU 관리자의 내부 동작은 로컬 RTE 구성을 위한 실행 가능 엔티티를 정의합니다 [SWS_EcuM_03018]. 모듈 포트 인터페이스의 일부로서 호출은 일반적으로 RTE를 통해 소프트웨어 컴포넌트에 의해 시작될 것으로 보입니다. 질문 Q-2c8f004d9f00bbd3 (열림)

이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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.

함수 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.

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: a5821c5da6f5 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

[SWS_EcuM_04064]에 따르면 동기식 및 재진입 함수 EcuM_SetClock은(는) ECU State Manager의 내부 시간을 사전 정의된 값으로 설정하는 데 사용됩니다. ECU Manager의 포트 인터페이스의 일부로서 이 함수는 헤더 파일 EcuM.h을(를) 통해 포함되고 호출될 수 있습니다[SWS_EcuM_04064].

이 인터페이스의 주 목적은 알람 서비스 테스트입니다: 정규 만료에 며칠이 소요되는 알람을 테스트 모드에서 의도적인 시간 설정을 통해 검증할 수 있습니다[SWS_EcuM_04064]. 이때 두 개의 입력 매개변수가 전달됩니다:

  • user(타입 EcuM_UserType): 시간을 설정하려는 호출자 또는 사용자의 식별자.
  • time(타입 EcuM_TimeType): 배터리 연결(Battery Connect) 이후 초 단위의 절대 시간 사양.

반환값으로 이 서비스는 성공적인 실행 시 E_OK, 오류 시 E_NOT_OK인 상태 Std_ReturnType을(를) 반환합니다[SWS_EcuM_04064]. 인터페이스에 구체적인 오류 원인이나 DET 메시지는 명세되어 있지 않으며, 권한이 없는 사용자 식별자나 유효하지 않은 시간 값을 전달하면 아마도 E_NOT_OK이(가) 반환될 것으로 보입니다. 질문 Q-248768580c0309e8 (열림)

내부 모듈 동작 및 RTE 구성과 관련하여 이 함수는 EcuStateManager의 Runnable Entities 구조에 통합됩니다[SWS_EcuM_03018].

이 텍스트는 AI에 의해 생성되었으며 기술적 오리엔테이션을 목적으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 3afaf8f6214a 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 함수 EcuM_SelectBootTarget은(는) 제어기를 위한 부트 타깃을 선택하는 데 사용되며, ECU Manager 포트 인터페이스의 일부이자 헤더 EcuM.h을(를) 통해 제공됩니다 [SWS_EcuM_02835]. 원하는 타깃은 유형 EcuM_BootTargetType의 입력 매개변수 target을(를) 통해 전달됩니다 [SWS_EcuM_02835].

반환값으로 함수는 새 부트 타깃이 EcuM에 의해 수락된 경우 E_OK을(를), 그렇지 않은 경우 E_NOT_OK을(를) 알립니다 [SWS_EcuM_02835]. 구현은 선택된 타깃을 부트로더와 호환되는 방식으로 저장해야 합니다 [SWS_EcuM_02247]. 현재 설정된 값은 보완 서비스인 EcuM_GetBootTarget을(를) 통해 조회할 수 있습니다 [SWS_EcuM_02836].

이 함수는 재진입 가능으로 명시되어 있습니다 [SWS_EcuM_02835]. RTE 구성을 위한 내부 동작의 프레임워크 내에서 실행 엔터티 SelectBootTarget은(는) canbeInvokedConcurrently = TRUE(으)로 선언되어 있습니다 [SWS_EcuM_03018]. 제한 사항으로서, 이 서비스는 진단 또는 부트 관리와 관련된 소프트웨어 컴포넌트(SW-C) 전용으로 제공되며 구체적으로 사용되는 부트로더에 따라 달라질 수 있습니다 [SWS_EcuM_03000].

이 텍스트는 AI에 의해 생성되었으며 AUTOSAR 사양의 요구 사항을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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.

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: f79b59c62af4 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

EcuM_ValidateWakeupEvent은(는) 매개변수 sources에 전달된 웨이크업 소스가 성공적으로 검증되었음을 ECU Manager에 알리는 동기 서비스(서비스 ID 0x14)입니다([SWS_EcuM_02829]). 웨이크업 후 ECU State Manager는 검증 시퀀스에서 이 확인을 기다립니다. 호출 시 함수는 검증의 실행 중인 타임아웃 타이머를 중지하고([SWS_EcuM_02710]) 전달된 이벤트를 비트마스크의 OR 연산을 통해 검증된 웨이크업 이벤트를 위한 내부 변수에 등록합니다([SWS_EcuM_04078]).

이 함수는 재진입 가능하며([SWS_EcuM_02829]), 태스크 컨텍스트와 인터럽트 컨텍스트 모두에서 호출될 수 있습니다([SWS_EcuM_02345]). ECU Manager가 RUN 상태에 있는 경우, 통신 채널이 아닌 한 모든 웨이크업 소스에 대해 호출이 영향을 미치지 않습니다([SWS_EcuM_02790]). 반면 통신 채널에 할당된 소스의 경우 서비스는 ECU의 모든 단계에서 제한 없이 효력을 발휘합니다([SWS_EcuM_02791]).

전체 절차에서 이 서비스는 웨이크업 검증 및 통신 관리와 밀접하게 상호작용합니다:

  • 검증 확인: ECU Manager는 확인을 위해 콜아웃 EcuM_CheckValidation을(를) 호출하며, 유효한 웨이크업 이벤트가 감지되면 EcuM_ValidateWakeupEvent을(를) 통해 피드백이 이루어집니다([SWS_EcuM_02925]).
  • 구성: 웨이크업 소스에 검증 프로토콜이 구성되어 있지 않은 경우(EcuMValidationTimeout), EcuM_SetWakeupEvent만으로도 이미 EcuM_ValidateWakeupEvent의 호출을 함축합니다([SWS_EcuM_02566]).
  • 알림: 웨이크업 소스에 EcuMComMChannelRef이(가) 구성되어 있는 경우, 서비스는 ComM_EcuM_WakeUpIndication을(를) 호출합니다([SWS_EcuM_02645]). EcuMComMPNCRef이(가) 구성된 경우 참조된 각 PNC에 대해 추가로 ComM_EcuM_PNCWakeUpIndication이(가) 트리거됩니다([SWS_EcuM_04140]).

이 사용 지침은 AUTOSAR Classic R20-11 사양을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: a96df00e2811 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 및 재진입 불가 콜백 함수인 EcuM_ErrorHook(EcuM_Externals.h을(를) 통해 제공됨)은(는) 정규 처리를 계속할 수 없고 제어기 정지가 필요한 심각한 오류가 발생할 때 ECU State Manager에 의해 호출됩니다 [SWS_EcuM_02904]. 전달 매개변수 reason을(를) 통해 구체적인 오류 원인이 전달됩니다 [SWS_EcuM_02904].

정의된 오류 원인에는 ECUM_E_RAM_CHECK_FAILED 및 ECUM_E_CONFIGURATION_DATA_INCONSISTENT이(가) 포함됩니다 [SWS_EcuM_02904]. 웨이크업 시 RAM 검사가 실패하면 ECU Manager는 원인 ECUM_E_RAM_CHECK_FAILED(으)로 EcuM_ErrorHook을(를) 트리거해야 할 의무가 있습니다 [SWS_EcuM_02987]. 또한 운영체제 함수 호출이 실패하고 다른 오류 대응이 지정되지 않은 경우 이 훅(hook)을 통해 오류 처리가 수행되며, 이 경우 EcuM은 이전 상태를 유지합니다 [SWS_EcuM_04139].

시스템 통합자에게는 구현 시 다음과 같은 프레임워크 조건이 적용됩니다:

  • 제어기 정지 방식: 통합자는 ECU를 정지시키는 방식(예: 리셋, 정지, 재기동 또는 안전 상태)을 선택합니다 [SWS_EcuM_02904]. 해석: 리셋이나 정지와 같은 과격한 조치의 경우 함수는 일반적으로 더 이상 정규 제어 흐름으로 돌아오지 않을 것으로 추정됩니다. 질문 Q-59c23e3a2569f670 (열림)
  • DEM으로의 오류 보고: DEM이 손상된 NVRAM 블록에 쓰지 않도록 보장되는 한, 오류를 DEM에 전달할지 여부는 통합자의 재량에 달려 있습니다 [SWS_EcuM_02987].

이 텍스트는 AI에 의해 작성되었으며 AUTOSAR CP R20-11 사양을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 166191cb51d3 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용 및 호출 조건

콜아웃 함수 EcuM_AL_SetProgrammableInterrupts은(는) 프로그래밍 가능한 인터럽트 컨트롤러가 있는 ECU에서 해당 인터럽트를 구성하고 설정하기 위해 ECU State Manager 모듈에 의해 호출됩니다 [SWS_EcuM_04085]. 그러나 이 콜아웃의 실행은 구성 매개변수 EcuMSetProgrammableInterrupts이(가) true 값으로 지정된 경우에만 수행됩니다 [SWS_EcuM_04085]. 이 매개변수가 활성화되지 않은 경우 호출되지 않습니다 [SWS_EcuM_04085]. 통합자 및 플랫폼 드라이버를 위해 헤더 파일 EcuM_Externals.h을(를) 통해 인터페이스 선언이 제공됩니다 [SWS_EcuM_04085].

해당 인터페이스는 void EcuM_AL_SetProgrammableInterrupts (void) 구문을 가지며 서비스 ID 0x4A에 할당되어 있습니다 [SWS_EcuM_04085]. 호출은 완전히 매개변수 없이 이루어집니다. 입력, 입출력 또는 출력 매개변수가 전달되지 않으며, 함수는 호출 모듈에 반환값을 반환하지 않습니다 [SWS_EcuM_04085].

동시성 및 제약사항

EcuM_AL_SetProgrammableInterrupts에 대해 명세서에는 비동기 실행 동작(Asynchronous)이 정의되어 있습니다 [SWS_EcuM_04085]. 동시성과 관련하여 이 함수는 비재진입(Non Reentrant)으로 분류됩니다 [SWS_EcuM_04085]. 이는 통합 관점에서 인터페이스에 대한 병렬 또는 중첩 호출이 허용되지 않으며 인터럽트 관련 구성이 동시 재진입 없이 실행되어야 함을 의미합니다 [SWS_EcuM_04085].

이 사용 지침은 AUTOSAR 사양을 기반으로 자동 생성되었습니다.

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 5df1108381d2 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

콜아웃 함수 EcuM_AL_DriverInitZero(서비스 ID 0x31)는 동기식으로 호출되며, 매개변수와 반환값이 모두 없고 재진입이 불가능합니다 [SWS_EcuM_02905]. 이 함수는 헤더 EcuM_Externals.h을 통해 선언됩니다 [SWS_EcuM_02905]. 이 함수의 역할은 이후 포스트 빌드 구성 데이터를 로드하는 데 반드시 필요한 초기 드라이버 초기화 및 기본적인 하드웨어 관련 시작 활동을 제공하는 것입니다 [SWS_EcuM_02905].

제약 사항 및 멀티코어 동작

구현 및 실행에는 다음과 같은 특정 지침과 제약 조건이 적용됩니다.

  • 구성 클래스: 이 초기 시점에는 프리컴파일 또는 링크 타임으로 구성 가능한 모듈만 독점적으로 사용할 수 있습니다 [SWS_EcuM_02905]. 포스트 빌드 구성 가능한 드라이버는 아직 사용할 수 없습니다.
  • 호출 컨텍스트: 이 함수는 시스템의 각 Core에서 EcuM_Init에 의해 호출됩니다 [SWS_EcuM_04145].
  • Core별 초기화: 콜아웃 구현은 현재 활성 상태인 Core에서 해당 특정 Core에서 실제로 실행되는 MCAL 모듈만 초기화되도록 보장해야 합니다 [SWS_EcuM_04145].

이 콜아웃에 대해 반환값, 특정 오류 코드 또는 DET나 DEM을 통한 알림은 정의되어 있지 않습니다 [SWS_EcuM_02905].

이 사용 지침은 AUTOSAR Release R20-11의 사양을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 8491e826e02d 출처 열린 질문 (2)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 EcuM_DeterminePbConfiguration([SWS_EcuM_02906])은 헤더 파일 EcuM_Externals.h을(를) 통해 제공되고 서비스 ID 0x32을(를) 갖는 ECU State Manager의 동기식 콜아웃입니다. 이 인터페이스는 입력, 출력 또는 입출력 매개변수를 갖지 않습니다([SWS_EcuM_02906]). 주요 목적은 시스템 시작의 추가 진행을 위해 어떤 포스트 빌드 구성 데이터 세트를 참조해야 하는지를 하드웨어 또는 메모리 조건에 따라 시동 프로세스 중에 결정하는 것입니다([SWS_EcuM_02906]).

구성을 결정하기 위해 콜아웃은 포트 핀의 상태나 NVRAM의 값과 같은 외부 또는 상주 기준을 평가해야 합니다([SWS_EcuM_02906]). 그런 다음 함수는 이 구성 데이터를 모든 BSW 모듈이 액세스할 수 있는 메모리 세그먼트에 로드해야 합니다([SWS_EcuM_02906]). 반환값으로 EcuM 포스트 빌드 구성에 대한 const EcuM_ConfigType* 타입의 포인터를 반환합니다([SWS_EcuM_02906]). 구조체에 다른 모든 BSW 모듈의 각 포스트 빌드 구성에 대한 포인터가 포함되어 있으므로, 이 포인터는 전체 BSW의 공통 기준을 형성합니다([SWS_EcuM_02906]).

호출 동작과 관련하여 이 함수는 동기식 및 비재진입(Non Reentrant)으로 명세되어 있습니다([SWS_EcuM_02906]). 이 콜아웃에 대해 특정 오류 코드, 특수 오류 반환값 및 DET 또는 DEM 인터페이스는 정의되어 있지 않습니다([SWS_EcuM_02906]). 따라서 유효한 구성 포인터의 부재는 아마도 종속 BSW 모듈의 질서 있는 시작을 방해할 것이므로, 애플리케이션별 콜아웃 구현이 오류 상태를 자체적으로 처리해야 한다는 점이 요구사항에 대한 해석으로 간주될 수 있습니다. 질문 Q-b9487647fb39a2e2 (열림)

이 사용 지침은 AUTOSAR CP R20-11 사양을 기반으로 자동으로 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 1a4bc344c682 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 의미론

함수 EcuM_AL_DriverInitOne은 ECU 상태 관리자(EcuM)의 콜아웃 함수이며, 헤더 파일 EcuM_Externals.h을 통해 제공됩니다 [SWS_EcuM_02907]. 주요 작업은 파워온 리셋 발생 시 드라이버 초기화 및 제어 장치의 기타 하드웨어 관련 시작 활동을 수행하는 것입니다 [SWS_EcuM_02907]. 콜아웃이므로 하드웨어 및 드라이버 초기화의 구체적인 구현은 각 시스템 통합자에 의해 수행될 것으로 보입니다. 질문 Q-e22baf2fa31cf075 (열림)

이 인터페이스는 C 시그니처 void EcuM_AL_DriverInitOne (void)을 가지며 서비스 ID 0x33에 할당됩니다 [SWS_EcuM_02907]. 어떠한 입력 매개변수도 허용하지 않으며 호출자에게 반환값도 반환하지 않습니다 [SWS_EcuM_02907].

동시성 및 제약사항

[SWS_EcuM_02907]에 따른 호출 및 런타임 동작에는 다음 제약 조건이 적용됩니다.

  • 동기성: 실행은 동기식(Synchronous)으로 이루어지므로, 호출자는 시작 활동이 완료될 때까지 대기합니다.
  • 재진입성: 이 함수는 재진입 불가(Non Reentrant)로 정의되어 있으므로 동시 호출 또는 인터럽트를 통한 다중 호출은 허용되지 않습니다.
  • 호출 컨텍스트: 활성화는 파워온 리셋 직후의 초기화 단계에 대해서만 독점적으로 지정되어 있습니다.

오류 처리

EcuM_AL_DriverInitOne은 반환 타입 void을 가지므로, 인터페이스 수준에서 초기화의 성공 또는 실패에 대한 직접적인 피드백이 존재하지 않습니다 [SWS_EcuM_02907]. 본 사양 범위에서는 이 콜아웃에 대해 특정 오류 코드, DET 또는 DEM 메시지가 정의되어 있지 않습니다.

이 텍스트는 AI에 의해 작성되었으며 AUTOSAR 사양 R20-11을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: e51873f736db 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 EcuM_LoopDetection은 서비스 ID 0x4B을 갖는 ECU State Manager의 콜아웃이며, 헤더 파일 EcuM_Externals.h를 통해 제공됩니다 [SWS_EcuM_04137].

사용법 및 호출 컨텍스트

구성 매개변수 EcuMResetLoopDetection이 true로 설정된 경우, 이 콜아웃은 매 시작(Startup) 시 동기식으로 호출됩니다 [SWS_EcuM_04137]. 이 함수는 입력, 입출력 또는 출력 매개변수가 없으며 반환값을 반환하지 않습니다(시그니처: void EcuM_LoopDetection (void)) [SWS_EcuM_04137].

동시성 및 제약사항

EcuM_LoopDetection의 실행은 동기식 및 재진입 불가(Non Reentrant)로 지정되어 있습니다 [SWS_EcuM_04137]. 콜아웃이므로 시스템 시작 시 반복되는 리셋 루프를 감지하기 위한 루프 감지의 구체적인 구현은 일반적으로 통합자 또는 사용자의 몫입니다.

이 사용 지침은 AUTOSAR 사양을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: ee988344d1c4 출처 열린 질문 (2)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

함수 EcuM_OnGoOffOne은(는) GO OFF I 시스템 상태 도달을 예고하고 시스템 설계자가 전환 직전에 적절한 조치를 취할 수 있는 기회를 제공하는 데 사용됩니다 [SWS_EcuM_02916]. 함수는 동기식으로 실행되고 전달 매개변수(in 또는 inout 모두 아님)를 기대하지 않으며 반환값(void)을 반환하지 않습니다 [SWS_EcuM_02916]. 인터페이스가 헤더 파일 EcuM_Externals.h을(를) 통해 선언되므로, 이는 통합 코드에서 구현되는 사용자 정의 콜아웃 함수로 이해할 수 있습니다 [SWS_EcuM_02916]. 질문 Q-93de53c47a5a6142 (열림)

오류 처리

EcuM_OnGoOffOne에 대한 명세에는 개발 오류(DET), 프로덕션 오류(DEM) 또는 특정 오류 반환값이 나열되어 있지 않습니다 [SWS_EcuM_02916]. 이를 통해 호출자가 표준화된 오류 관리를 기대하지 않으며 발생 가능한 모든 예외 상황은 사용자 정의 구현 내에서 자율적으로 처리되어야 함을 알 수 있습니다 [SWS_EcuM_02916].

동시성 및 제약사항

호출 컨텍스트 및 런타임 동작에 대해 다음과 같은 특성이 정의되어 있습니다 [SWS_EcuM_02916]:

  • 재진입성: 함수는 non-reentrant(Non Reentrant)로 명시되어 있으며 병렬 또는 중첩 방식으로 호출되어서는 안 됩니다 [SWS_EcuM_02916].
  • 동기성: 시맨틱은 엄격하게 동기식(Synchronous)이므로 호출자는 함수의 완전한 반환을 기다립니다 [SWS_EcuM_02916].
  • 서비스 ID: 이 서비스는 내부적으로 16진수 식별자 0x3C(으)로 표현됩니다 [SWS_EcuM_02916].

동기적 동작과 GO OFF I 상태로의 진입 임박으로 인해, 종료 또는 전환 프로세스를 부당하게 지연시키지 않도록 블로킹 동작을 피해야 할 것으로 추정됩니다 [SWS_EcuM_02916]. 질문 Q-93f5e23c581f0c38 (열림)

본 사용 지침은 AUTOSAR CP R20-11 사양을 바탕으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: e613bc195292 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사양에 따르면 동기 함수 EcuM_OnGoOffTwo은 시스템 설계자에게 GO OFF II 상태가 임박했음을 알릴 수 있도록 하는 역할을 합니다 [SWS_EcuM_02917]. 호출은 In, Inout 또는 Out 매개변수 없이 매개변수 없이 수행되며 호출자에게 반환값을 반환하지 않습니다 [SWS_EcuM_02917].

실행 컨텍스트 및 동시성과 관련하여, 이 인터페이스는 서비스 ID 0x3D이 부여되어 있으며 재진입 불가(Non Reentrant)로 지정되어 있습니다 [SWS_EcuM_02917]. 이 인터페이스는 헤더 EcuM_Externals.h를 통해 제공됩니다 [SWS_EcuM_02917]. 해석: 선언이 EcuM_Externals.h에 있고 시스템 설계자에게 알리는 역할을 하므로, 이 함수는 GO OFF II 상태로 전환되기 전에 호출되는 제어 장치 관리의 동기 콜아웃으로 설계되었을 것으로 보입니다. 질문 Q-bb0ae6e4632de827 (열림)

재진입 불가능한 인터페이스 특성으로 인해 호출을 병렬로 수행하거나 인터럽트를 통해 반복해서는 안 됩니다 [SWS_EcuM_02917]. 사양 범위 내에는 특정 오류 코드, DET 또는 DEM으로의 피드백 및 별도의 오류 처리 메커니즘이 정의되어 있지 않습니다 [SWS_EcuM_02917].

이 텍스트는 R20-11 사양을 바탕으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 0b4004b6930f 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

콜아웃 함수 EcuM_AL_SwitchOff은 ECU State Manager(EcuM) 모듈의 일부이며, 제어 장치의 전원 공급을 끄기 위한 사용자 정의 코드를 수용하는 역할을 합니다 [SWS_EcuM_02920]. 이 인터페이스는 동기식으로 정의되어 있고, 서비스 ID 0x3E를 가지며, 헤더 파일 EcuM_Externals.h을 통해 제공됩니다 [SWS_EcuM_02920].

사양에 따르면 이 함수는 입력, 입출력 또는 출력 매개변수를 받지 않으며 반환값이 없습니다(void) [SWS_EcuM_02920]. 제어 장치의 하드웨어가 스스로 전원을 차단할 수 없는 경우, 사양은 그 대신 리셋을 트리거하는 것이 적절한 대응이 될 수 있도록 규정합니다 [SWS_EcuM_02920].

상호작용 및 동시성

선택된 셧다운 대상이 OFF인 즉시 ECU Manager 모듈에 의해 EcuM_AL_SwitchOff이 반드시 호출됩니다 [SWS_EcuM_04075]. 동시성 동작과 관련하여 이 콜아웃은 재진입 불가(Non Reentrant)로 지정되어 있습니다 [SWS_EcuM_02920]. 해석: 이 함수의 목적이 전원 공급의 완전한 차단 또는 대체 수단으로서의 리셋이므로, 이 콜아웃은 이후 더 이상의 정규 프로그램 실행이 발생하지 않는 셧다운 시퀀스의 최종 단계를 나타낼 것으로 보입니다. 질문 Q-e8a1aaa1413bbea9 (열림)

오류 처리

이 콜아웃에 대해 사양에는 특정 오류 코드, 오류 처리 메커니즘 또는 DET나 DEM으로의 메시지가 규정되어 있지 않습니다 [SWS_EcuM_02920].

이 사용 지침은 AUTOSAR CP R20-11 사양을 기반으로 자동으로 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 EcuM_AL_Reset [SWS_EcuM_04065] 📄 PDF

void EcuM_AL_Reset (EcuM_ResetType reset);

This callout shall take the code for resetting the ECU.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: cf7a6e2e5e21 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

콜아웃 EcuM_AL_Reset은 제어 장치 재설정을 담당하는 통합별 코드를 수용하는 역할을 합니다([SWS_EcuM_04065]). 이 인터페이스는 헤더 파일 EcuM_Externals.h를 통해 선언되며 서비스 ID 0x4C을 갖습니다([SWS_EcuM_04065]).

함수 호출은 동기식으로 이루어지며 재진입 불가(Non Reentrant)로 정의됩니다([SWS_EcuM_04065]). 유일한 입력 매개변수로 수행할 리셋의 구체적인 유형을 지정하는 EcuM_ResetType 타입의 reset가 전달됩니다([SWS_EcuM_04065]). 이 함수는 반환값이 없으며(void), 출력 또는 입출력을 위한 매개변수가 없습니다([SWS_EcuM_04065]).

셧다운 단계의 상호 작용에서, 종료 대상이 RESET로 설정된 경우 ECU Manager 모듈이 콜아웃 EcuM_AL_Reset을 반드시 호출해야 하도록 규정되어 있습니다([SWS_EcuM_04074]). 이 콜아웃에 대해 사양에는 오류 코드나 DET 또는 DEM으로의 알림이 규정되어 있지 않습니다([SWS_EcuM_04065]). 해석: 이 콜아웃은 MCU 재설정을 직접 유발하는 하드웨어 친화적 제어 명령을 실행할 것으로 보입니다. 질문 Q-1e318404843faabd (열림)

이 사용 지침은 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 4e41a87f2d45 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 EcuM_EnableWakeupSources은 헤더 EcuM_Externals.h를 통해 선언되는 서비스 ID 0x3F을 갖는 ECU 관리자의 동기 콜아웃입니다 [SWS_EcuM_02918]. 이 함수는 비트 필드 wakeupSource(타입 EcuM_WakeupSourceType)에 지정된 웨이크업 소스를 적절히 준비하고 설정할 수 있도록 시스템 개발자에게 상태 SLEEP가 임박했음을 알리는 역할을 합니다 [SWS_EcuM_02918].

사용법 및 상호작용

ECU 관리자는 다음 Sleep 모드를 위한 웨이크업 소스를 구성하기 위해 EcuM_EnableWakeupSources을 실행합니다. 이는 대상 Sleep 모드에 대해 EcuMWakeupSourceMask에서 구성된 각 웨이크업 소스에 대해 수행됩니다 [SWS_EcuM_02389]. 이 함수는 반환값이 없으며(void) 입력 매개변수로 비트 필드 wakeupSource를 기대합니다 [SWS_EcuM_02918].

동시성 및 제약사항

  • 재진입성: 함수는 재진입 불가능(Non Reentrant)으로 명시되어 있습니다 [SWS_EcuM_02918].
  • 동기성: 처리는 동기식으로 수행됩니다 [SWS_EcuM_02918].
  • 오류 처리: 인터페이스 사양 범위 내에는 특정 DET 또는 DEM 오류 메시지가 정의되어 있지 않습니다 [SWS_EcuM_02918].

이 사용 참고 사항은 AUTOSAR 사양 버전 R20-11을 기반으로 자동 생성되었습니다.

함수 EcuM_GenerateRamHash [SWS_EcuM_02919] 📄 PDF

void EcuM_GenerateRamHash (void);

see EcuM_CheckRamHash

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: ce82c127dbe0 출처 열린 질문 (2)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 EcuM_GenerateRamHash은 ECU State Manager 컨텍스트에서 RAM 체크값을 생성하는 데 사용되며, 사양에서는 동작 방식과 관련하여 EcuM_CheckRamHash을 참조합니다 [SWS_EcuM_02919]. 생성된 체크값은 슬립 또는 대기 상태와 관련하여 메인 메모리의 후속 무결성 검사에 사용될 것으로 추정됩니다. 질문 Q-7f316b389e1609c0 (열림)

사용법 및 인터페이스

이 서비스는 서비스 ID 0x40과 시그니처 void EcuM_GenerateRamHash(void)을 가집니다 [SWS_EcuM_02919]. 이 함수는 입력, 출력 또는 입출력 매개변수가 없으며 반환값을 반환하지 않습니다. 실행은 동기식으로 이루어집니다.

동시성 및 제약사항

이 함수는 재진입 불가(Non Reentrant)로 지정되어 있습니다 [SWS_EcuM_02919]. 따라서 인터럽트를 발생시키거나 여러 컨텍스트에서 병렬로 호출해서는 안 됩니다. 선언은 헤더 파일 EcuM_Externals.h을 통해 제공됩니다 [SWS_EcuM_02919]. 해석: EcuM_Externals.h의 정의에 따르면, 이는 상태 시퀀스의 적절한 시점에 ECU State Manager에 의해 호출되는 사용자 지정 구현 콜아웃일 것으로 보입니다. 질문 Q-2f53f1a19cee079c (열림)

오류 처리

EcuM_GenerateRamHash에 대해 [SWS_EcuM_02919]에는 특정 오류 코드와 DET 및 DEM 메시지가 모두 정의되어 있지 않습니다.

이 사용 지침은 모듈 EcuM 사양을 기반으로 자동 생성되었습니다.

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 331d24f7a327 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 호출 컨텍스트

함수 EcuM_SleepActivity은(는) ECU State Manager의 콜아웃을 나타내며, 헤더 파일 EcuM_Externals.h에서 서비스 ID 0x41(으)로 제공됩니다 [SWS_EcuM_02928]. 호출은 감소된 프로세서 클록을 사용하는 모든 절전 모드(reduced clock sleep modes)에서 주기적으로 발생합니다 [SWS_EcuM_02928]. 함수는 시그니처 void EcuM_SleepActivity(void)을(를) 가지며 동기식으로 동작하고 입력, 출력 또는 입출력 매개변수를 받지 않습니다 [SWS_EcuM_02928].

기능적 역할 및 상호작용

이 콜아웃의 목적은 절전 중 활동을 수행하는 것입니다. EcuM_SleepActivity 내에서 웨이크업 소스를 주기적으로 쿼리(폴링)하는 것이 명시적으로 계획되어 있고 허용됩니다 [SWS_EcuM_02928]. 또한 ECU State Manager에 절전 상태의 종료를 알리기 위해 콜아웃에서 직접 웨이크업 알림 함수를 호출할 수 있습니다 [SWS_EcuM_02928].

동시성 및 제약사항

해당 인터페이스는 비재진입(Non Reentrant)으로 명시되어 있습니다 [SWS_EcuM_02928]. 콜아웃이 반환값을 제공하지 않고 오류 매개변수도 정의되어 있지 않으므로, 함수 인터페이스를 통해 오류 코드나 DET 또는 DEM과 같은 오류 보고기를 통한 직접적인 오류 처리는 수행되지 않습니다 [SWS_EcuM_02928].

이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: adada8898a5f 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 호출 컨텍스트

동기 인터페이스 EcuM_StartCheckWakeup은 [SWS_EcuM_04096]에 따라 특정 웨이크업 소스에 대한 타이머 CheckWakeupTimer를 시작하기 위해 ECU 펌웨어에 의해 호출됩니다. 이를 위해 함수에 EcuM_WakeupSourceType 타입의 매개변수 WakeupSource이 전달됩니다. 이 함수는 반환값이 없으며(void) 헤더 파일 EcuM_Externals.h을 통해 제공됩니다.

절차 및 조건

함수 실행은 웨이크업 소스의 구성에 따라 달라집니다 [SWS_EcuM_04096].

  • 해당 웨이크업 소스에 대해 EcuMCheckWakeupTimeout > 0이 구성된 경우 연결된 CheckWakeupTimer이 시작됩니다.
  • EcuMCheckWakeupTimeout <= 0이 적용되는 경우 함수 호출은 EcuM에 의해 완전히 무시됩니다.

동시성 및 오류 처리

이 함수는 재진입 불가(Non Reentrant)로 지정되어 있습니다 [SWS_EcuM_04096]. 따라서 호출자는 동일하거나 다른 웨이크업 소스에 대한 호출이 동시에 발생하지 않도록 보장해야 합니다. 이 호출에 대해 특정 오류 코드 및 DET 또는 DEM으로의 알림은 지정되어 있지 않습니다. 사양에 따르면 양수가 아닌 타임아웃에서의 호출은 아무런 영향이 없으며, 이는 무관한 타이머 검사의 허용 가능한 포착으로 해석될 수 있을 것으로 추정됩니다 [SWS_EcuM_04096]. 질문 Q-19d98b03d3ee7504 (열림)

본 사용 지침은 AUTOSAR R20-11 명세를 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 9c2d9feb4e41 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

콜아웃 EcuM_CheckWakeup은 웨이크업 소스의 검사 및 폴링뿐만 아니라 웨이크업 이벤트 후 PLL 구성에 사용됩니다 [SWS_EcuM_02929]. 이 함수는 헤더 파일 EcuM_Externals.h를 통해 제공되며 서비스 ID 0x42을 갖습니다 [SWS_EcuM_02929].

호출 컨텍스트 및 시맨틱

  • 시그니처 및 매개변수: 이 함수는 동기식으로 실행되고(Synchronous), 반환값이 없으며, 입력 매개변수로 EcuM_WakeupSourceType 타입의 wakeupSource을 기대합니다 [SWS_EcuM_02929].
  • 호출자: 이 콜아웃은 웨이크업 소스를 주기적으로 폴링하기 위해 EcuM에 의해 호출됩니다. 또한 동일한 인터럽트에 연결된 추가 웨이크업 소스를 검사하고 PLL을 설정하기 위해 웨이크업 소스의 인터럽트 서비스 루틴(ISR)에서 반드시 호출되어야 합니다 [SWS_EcuM_02929].
  • 폴링 루프: 폴링 시퀀스에서 EcuM은 웨이크업 이벤트가 보류 중이거나 유효한 것으로 보고될 때까지 콜아웃 EcuM_SleepActivity 및 EcuM_CheckWakeup을 블로킹 루프에서 반복적으로 호출합니다 [SWS_EcuM_03020].

제약 사항 및 오류 처리

이 함수는 재진입 불가(Non Reentrant)로 지정되어 있습니다 [SWS_EcuM_02929]. 폴링 시퀀스의 블로킹 흐름과 ISR 컨텍스트 모두에서 호출이 발생하므로 통합 시 조정되지 않은 동시 호출이 발생하지 않도록 보장해야 할 것으로 보입니다. 질문 Q-8bc8f164670a0911 (열림) 이 콜아웃에 대해 특정 오류 코드나 DET 또는 DEM으로의 오류 알림은 정의되어 있지 않습니다.

이 사용 지침은 AUTOSAR 사양을 바탕으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 22fef1b09b30 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 함수 EcuM_EndCheckWakeup은(는) 웨이크업 소스에 대한 비동기 검사(예: 비동기 CAN 트랜시버 드라이버 등)가 음성 결과를 생성할 때, 즉 이 소스에 의한 웨이크업 이벤트가 없을 때 소프트웨어 모듈에 의해 호출됩니다[SWS_EcuM_02927].

사용법 및 매개변수

EcuM_WakeupSourceType 타입의 입력 매개변수 WakeupSource을(를) 통해 연관된 모니터링 타이머를 취소해야 하는 웨이크업 소스가 전달됩니다[SWS_EcuM_02927]. 이 함수는 반환값을 반환하지 않으며(void) 입출력 또는 출력 매개변수를 갖지 않습니다[SWS_EcuM_02927].

동작 방식 및 동시성

  • 이 함수는 지정된 웨이크업 소스에 대한 타이머 CheckWakeupTimer을(를) 취소하며, 이 타이머의 취소와 함께 웨이크업 소스의 검사는 완료된 것으로 간주됩니다[SWS_EcuM_02927].
  • 이 인터페이스는 동기식 및 비재진입(Non Reentrant)(으)로 정의됩니다[SWS_EcuM_02927].
  • 선언은 헤더 파일 EcuM_Externals.h을(를) 통해 제공됩니다[SWS_EcuM_02927].

이 사용 지침은 AUTOSAR R20-11 사양을 바탕으로 자동 생성되었습니다.

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: d1c6f593ca9f 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 EcuM_CheckRamHash은 RAM 메모리의 무결성 테스트를 제공하는 동기식 비재진입 콜아웃(EcuM_Externals.h에 선언됨)입니다 [SWS_EcuM_02921]. 이 함수는 매개변수가 없으며 uint8 타입의 상태값을 반환합니다. 값 0는 테스트 실패를 나타내고, 다른 모든 값은 성공적인 통과를 나타냅니다 [SWS_EcuM_02921].

[SWS_EcuM_02863]에 따르면 EcuM 모듈은 마이크로컨트롤러를 정지시키기 전에 먼저 [SWS_EcuM_02919]을 호출하고, Halt 상태에서 복귀한 후 EcuM_CheckRamHash를 실행합니다. 목적은 긴 SLEEP 단계 후에도 RAM 내용이 일관되게 유지되었는지 검증하는 것입니다 [SWS_EcuM_02921].

구현 및 절차에는 다음 제약 조건이 적용됩니다.

  • 알고리즘 및 검사 영역: 검사 함수는 시스템 설계자에 의해 제공됩니다. 완전할 필요는 없지만 빠르게 실행되어야 하고 오류를 충분히 안정적으로 감지해야 합니다 [SWS_EcuM_02921]. 검사할 영역은 신중하게 선택해야 하며, 실행 중인 태스크의 스택 내용은 일반적으로 검사할 수 없습니다 [SWS_EcuM_02921].
  • 태스크 구조: 모범 사례는 최소한의 중간 활동만을 둔 채 동일한 중단 불가능한 태스크 내에서 해시 생성 및 검사를 실행하는 것입니다 [SWS_EcuM_02921].
  • 멀티코어: 위성 EcuM이 있는 다중 프로세서 코어의 경우, 이 콜아웃은 마스터 EcuM에 의해서만 독점적으로 호출되며 해당 마스터 EcuM의 접근 범위 내에 있는 데이터만 검사합니다 [SWS_EcuM_02863], [SWS_EcuM_02921].

이 콜아웃에 대해 특정 DET 또는 DEM 메시지는 정의되어 있지 않으며, 반환값 0 시의 오류 반응은 상위 시스템 설계의 재량에 달려 있을 것으로 추정됩니다 [SWS_EcuM_02921]. 질문 Q-473ef8617db29fe3 (열림)

이 텍스트는 AI에 의해 생성되었으며 AUTOSAR Classic R20-11 사양을 기반으로 합니다.

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 474e253af285 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

서비스 ID 0x44을(를) 갖는 동기식 인터페이스 EcuM_DisableWakeupSources은(는) EcuM_WakeupSourceType 타입의 비트 필드 매개변수 wakeupSource에 정의된 웨이크업 소스를 구성하여 이들이 더 이상 ECU를 깨울 수 없도록 하는 데 사용됩니다[SWS_EcuM_02922]. 함수 시그니처는 void EcuM_DisableWakeupSources (EcuM_WakeupSourceType wakeupSource)입니다[SWS_EcuM_02922].

명세에 따르면 호출 컨텍스트 및 통합에 대해 다음과 같은 특성이 적용됩니다:

  • 호출자 및 헤더: 이 함수는 ECU Manager 모듈에 의해 호출되며 헤더 파일 EcuM_Externals.h을(를) 통해 제공됩니다[SWS_EcuM_02922].
  • 매개변수 및 반환값: 유일한 입력 매개변수로 비트 필드 wakeupSource이(가) 전달됩니다. 이 함수는 입출력 또는 출력 매개변수를 갖지 않으며 반환값(void)을 반환하지 않습니다[SWS_EcuM_02922].
  • 실행 시맨틱 및 동시성: 처리는 동기식으로 수행됩니다. 또한 함수는 비재진입(Non Reentrant)으로 명세되어 있으므로 동시 또는 중첩 호출을 피해야 합니다[SWS_EcuM_02922].

오류 처리와 관련하여 명세에는 이 함수 호출에 대한 특정 오류 코드나 DET 또는 DEM에 대한 알림이 포함되어 있지 않습니다[SWS_EcuM_02922].

이 텍스트는 AUTOSAR CP R20-11 명세를 기반으로 AI에 의해 생성되었습니다.

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: f02a8bab5708 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

콜아웃 EcuM_AL_DriverRestart은 헤더 파일 EcuM_Externals.h을 통해 선언되며 서비스 ID 0x45를 가집니다 [SWS_EcuM_02923]. 이 함수는 시그니처 void EcuM_AL_DriverRestart (void)를 가지며 전달 매개변수가 필요 없고 반환값을 반환하지 않습니다 [SWS_EcuM_02923]. 이 인터페이스의 목적은 웨이크업 시(Wakeup Case) 시작 단계 동안 드라이버 초기화 및 기타 하드웨어 관련 활동을 제공하는 것입니다 [SWS_EcuM_02923].

통합 및 모듈 EcuM과의 상호 작용에 대해 구속력 있는 요구사항이 적용됩니다.

  • 단계 WakeupRestart 동안의 재초기화를 위해 통합자는 구성된 목록 EcuMDriverRestartList를 사용하는 EcuM_AL_DriverRestart용 통합 코드에 재시작 블록을 포함해야 합니다 [SWS_EcuM_02947] [SWS_EcuM_02923].
  • 목록 EcuMDriverRestartList에는 웨이크업 소스(Wakeup Sources) 역할을 하는 드라이버가 포함될 수 있습니다 [SWS_EcuM_02562]. 이 경우 EcuM_AL_DriverRestart는 이러한 드라이버의 웨이크업 감지(“wakeup detected”) 콜백에 대한 트리거 메커니즘을 다시 활성화(re-arm)해야 합니다 [SWS_EcuM_02562].

런타임 동작과 관련하여 이 함수는 동기식 및 비재진입으로 정의됩니다 [SWS_EcuM_02923]. 애플리케이션별 통합 코드이므로 사양은 이 인터페이스에서 자체 오류 코드나 DET 또는 DEM으로의 표준화된 메시지를 정의하지 않습니다.

이 텍스트는 AI에 의해 작성되었습니다. 정보가 불완전할 수 있으며 공식 AUTOSAR 사양을 대체하지 않습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 72a2492ac382 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

콜아웃 함수 EcuM_StartWakeupSources은 후속 웨이크업 유효성 검사(Wakeup Validation) 수행을 준비할 수 있도록 전달받은 웨이크업 소스를 시작하고 동작시키는 역할을 합니다 [SWS_EcuM_02924].

사용법 및 호출 컨텍스트

이 함수는 서비스 ID 0x46을 갖는 동기식 호출로 지정되어 있으며, 반환값이 없고(void) 헤더 파일 EcuM_Externals.h를 통해 제공됩니다 [SWS_EcuM_02924].

  • 매개변수 wakeupSource (in): 콜아웃 함수 [SWS_EcuM_02924]에 시작할 웨이크업 소스 또는 EcuM_WakeupSourceType 타입의 여러 웨이크업 소스에 대한 비트 마스크를 전달합니다. 추가적인 입출력 또는 출력 매개변수(inout/out)는 존재하지 않습니다 [SWS_EcuM_02924].

동시성 및 제약사항

실행 환경과 관련하여 EcuM_StartWakeupSources은 재진입 불가(Non Reentrant)로 분류됩니다 [SWS_EcuM_02924]. 따라서 호출자는 중단 인터럽트 서비스 루틴이나 병렬 태스크에서 이 함수가 동시에 실행되지 않도록 보장해야 합니다.

상호 작용 및 오류 처리

EcuM_StartWakeupSources은 콜아웃으로 선언되어 있으므로 해당 소스의 하드웨어 친화적 활성화는 시스템 통합자의 애플리케이션별 구현에 달려 있습니다 [SWS_EcuM_02924]. 사양은 이 인터페이스에 대해 DET 또는 DEM으로의 오류 메시지나 특정 오류 반환값을 규정하지 않습니다 [SWS_EcuM_02924]. 따라서 소스 시작 시 발생할 수 있는 오류 상태는 콜아웃 내에서 통합별로 포착될 것으로 추정됩니다. 질문 Q-b595e7175c34a831 (열림)

이 텍스트는 AI에 의해 작성되었으며 AUTOSAR R20-11 사양을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 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().

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: c36dd6936c23 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 EcuM_CheckValidation은(는) 웨이크업 소스를 확인하기 위한 ECU State Manager의 콜아웃 인터페이스 역할을 합니다[SWS_EcuM_02925]. EcuM은 감지된 웨이크업 이벤트가 유효한지 확인하기 위해 이 함수를 호출합니다[SWS_EcuM_02925].

사용

이 콜아웃은 서비스 ID 0x47을(를) 가지며 헤더 파일 EcuM_Externals.h을(를) 통해 제공됩니다[SWS_EcuM_02925]. 입력 매개변수로는 검증할 웨이크업 소스를 식별하는 EcuM_WakeupSourceType 유형의 wakeupSource이(가) 사용됩니다[SWS_EcuM_02925]. 이 함수는 반환값을 제공하지 않으며(void), 출력 또는 입출력 매개변수를 가지지 않습니다[SWS_EcuM_02925]. 실행은 동기식으로 이루어집니다[SWS_EcuM_02925].

오류 처리

이 콜아웃에 대한 특정 오류 코드, 오류 발생 시 반환값 또는 DET나 DEM으로의 보고는 사양에 정의되어 있지 않습니다.

동시성 및 제약사항

동시성과 관련하여 EcuM_CheckValidation은(는) 재진입 불가(Non Reentrant)로 정의되어 있습니다[SWS_EcuM_02925]. EcuM의 호출 컨텍스트는 동일하거나 서로 다른 웨이크업 소스에 대해 병렬 또는 중첩 호출이 발생하지 않도록 보장해야 합니다.

상호 작용

실행 중에 유효한 웨이크업 이벤트가 감지된 경우, 이는 함수 호출 EcuM_ValidateWakeupEvent()을(를) 통해 EcuM에 반드시 다시 보고되어야 합니다[SWS_EcuM_02925]. Interpretation: 하드웨어를 확인하기 위한 장치별 로직 및 유효성 판단 결정은 전적으로 통합 코드에 구현될 것으로 보입니다. 질문 Q-08061e09b474728d (열림)

이 사용 지침은 AUTOSAR CP R20-11 명세를 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 63994628bd66 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

EcuM 모듈(Classic Platform)의 콜아웃 함수 EcuM_StopWakeupSources은 성공하지 못한 웨이크업 유효성 검사 후 전달받은 웨이크업 소스를 목표에 맞게 중지하는 역할을 합니다 [SWS_EcuM_02926]. 이 동기식 인터페이스의 선언은 헤더 파일 EcuM_Externals.h를 통해 제공되며 서비스 ID 0x48을 갖습니다 [SWS_EcuM_02926].

사용법 및 인터페이스 매개변수:

  • 입력 매개변수: 유일한 매개변수로 중지할 웨이크업 소스를 지정하는 EcuM_WakeupSourceType 타입의 wakeupSource이 전달됩니다 [SWS_EcuM_02926].
  • 반환값 및 입출력: 입출력 매개변수(inout)와 출력 매개변수(out)가 모두 존재하지 않습니다 [SWS_EcuM_02926]. 이 함수는 호출자에게 반환값(void)을 반환하지 않습니다 [SWS_EcuM_02926].
  • 실행 동작: 함수 처리는 동기식(Synchronous)으로 정의됩니다 [SWS_EcuM_02926].

동시성 및 오류 처리:

이 인터페이스는 비재진입(Non Reentrant)으로 지정되어 있습니다 [SWS_EcuM_02926]. 따라서 병렬 호출은 허용되지 않으며 호출자가 이를 방지해야 합니다. 사양은 이 콜아웃에 대해 특정 오류 코드, 반환값 또는 Default Error Tracer(DET)나 Diagnostic Event Manager(DEM) 모듈로의 알림을 정의하지 않습니다 [SWS_EcuM_02926]. 해석: 이 함수는 EcuM_Externals.h을 통해 외부 콜아웃으로 제공되므로 관련 웨이크업 하드웨어의 하드웨어 관련 비활성화 및 내부 오류 처리는 사용자 정의 구현의 몫입니다. 질문 Q-b537c805bed751ab (열림)

이 텍스트는 R20-11 사양을 바탕으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 9ac46d3f83ab 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 호출 컨텍스트

함수 EcuM_MainFunction은(는) 서비스 ID 0x18을(를) 갖는 시그니처 void EcuM_MainFunction(void)을(를) 가지며 헤더 파일 SchM_EcuM.h을(를) 통해 제공됩니다 [SWS_EcuM_02837]. 매개변수를 받지 않으며 반환값을 반환하지 않습니다 [SWS_EcuM_02837]. 이 함수의 역할은 운영체제가 실행 중인 동안("OS is up and running") ECU State Manager의 모든 활동을 처리하는 것입니다 [SWS_EcuM_02837]. 이때 함수는 일반적으로 스케줄러에 의해 주기적으로 호출될 것으로 보입니다(해석: SchM_EcuM.h을(를) 통한 통합). 질문 Q-ca471f22bdb1f11d (열림)

상호작용 및 태스크

실행 중인 작동 상태에서 EcuM_MainFunction은(는) 핵심적인 조율 작업을 수행합니다:

  • 웨이크업 소스 검증: WakeupRestart 시퀀스가 완료된 후 웨이크업 소스 후보 목록이 존재하는 경우, EcuM 모듈은 EcuM_MainFunction 내에서 이러한 후보들을 검증합니다 [SWS_EcuM_02539].
  • 검증 타임아웃 만료: 대기 중인 웨이크업 이벤트에 대한 검증 타임아웃이 만료되면, 함수는 만료된 웨이크업 이벤트에 대한 내부 변수에서 해당 비트를 OR 연산으로 설정합니다 [SWS_EcuM_04081]. 또한 BswM_EcuM_Current_Wakeup을(를) 통해 해당 이벤트의 EcuM_WakeupSourceType 비트마스크 및 상태 ECUM_WKSTATUS_EXPIRED과(와) 함께 BSW 관리에 통지합니다 [SWS_EcuM_04082].
  • Alarm Clock Service: EcuMAlarmClockPresent을(를) 통한 서비스가 존재하는 경우, EcuM_MainFunction은(는) Alarm Clock Timer를 갱신합니다 [SWS_EcuM_04002].

제한 사항 및 인스턴스

멀티코어 또는 멀티인스턴스 아키텍처에 대한 주요 경계 조건으로서 EcuM_MainFunction은(는) EcuM의 모든 인스턴스에서 실행되어야 합니다 [SWS_EcuM_04011].

이 사용 지침은 R20-11 사양을 바탕으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

타입 EcuM_ConfigType [SWS_EcuM_04038] 📄 PDF

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

타입 EcuM_RunStatusType [SWS_EcuM_04120] 📄 PDF

Result of the Run Request Protocol sent to BswM

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 94aa8a70183e 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

데이터 타입 EcuM_RunStatusType은(는) uint8(으)로 정의되며 헤더 EcuM.h을(를) 통해 제공됩니다([SWS_EcuM_04120]). 이 타입은 ECU 관리자에서 실행 요청 프로토콜의 현재 상태를 공식적으로 표현하는 역할을 하며, Basic Software Mode Manager(BswM)에 결과로 전달됩니다([SWS_EcuM_04120]).

허용되는 값 범위는 세 가지 이산 상태로 구성됩니다([SWS_EcuM_04120]):

  • ECUM_RUNSTATUS_UNKNOWN(값 0): 알 수 없는 상태를 나타내며 동시에 정의된 초기화 값(Init Value) 역할을 합니다.
  • ECUM_RUNSTATUS_REQUESTED(값 1): RUN 상태가 ECU Manager에 의해 활발히 요청되었음을 나타냅니다.
  • ECUM_RUNSTATUS_RELEASED(값 2): RUN 상태가 ECU Manager에 의해 다시 해제되었음을 신호합니다.

상호작용과 관련하여 요구사항 [SWS_EcuM_04121]은(는) ECU Manager 모듈이 EcuM_RunStatusType에 나열된 상태 값을 기반으로 Run Request 프로토콜의 현재 상태를 BswM에 구속력 있게 통지하도록 규정합니다. 해석: 요구사항에 메시지 흐름에 대한 특정 함수 시그니처나 호출 규칙이 명시되어 있지 않으므로, 상태 정보는 일반적으로 내부 알림 함수 또는 콜백 인터페이스를 통해 BswM 모듈로 전달될 것으로 보입니다. 질문 Q-e136b90c2edbc29c (열림) 이 기본 데이터 타입에 대해서는 본 요구사항에서 특정 오류 코드, DET 또는 DEM 보고, 특수한 재진입 조건이 제공되지 않습니다.

이 사용 지침은 AUTOSAR Classic R20-11 사양을 바탕으로 자동 작성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 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.

타입 EcuM_WakeupStatusType [SWS_EcuM_04041] 📄 PDF

The type describes the possible states of a wakeup source.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 99623532d1ab 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

데이터 타입 EcuM_WakeupStatusType은 [SWS_EcuM_04041]에 따라 ECU State Manager에서 웨이크업 소스(Wakeup Source)의 가능한 상태를 설명합니다. 이 타입은 기본 타입 uint8에서 파생되며 헤더 EcuM.h을 통해 제공됩니다 [SWS_EcuM_04041].

값 범위는 네 가지 상태를 통해 웨이크업 이벤트의 수명 주기를 매핑합니다 [SWS_EcuM_04041].

  • ECUM_WKSTATUS_NONE (값 0): 보류 중인 웨이크업 이벤트가 감지되지 않았습니다 [SWS_EcuM_04041].
  • ECUM_WKSTATUS_PENDING (값 1): 웨이크업 이벤트가 감지되었지만 아직 유효성이 검사되지 않았습니다 [SWS_EcuM_04041].
  • ECUM_WKSTATUS_VALIDATED (값 2): 웨이크업 이벤트가 유효하며 성공적으로 확인되었습니다 [SWS_EcuM_04041].
  • ECUM_WKSTATUS_EXPIRED (값 3): 웨이크업 이벤트의 유효성이 제때 검사되지 않아 만료되었습니다 [SWS_EcuM_04041].

사용 및 상호 작용: 이 타입은 웨이크업 소스를 위한 중앙 상태 표현 역할을 합니다. 해석: 호출자는 상태 조회의 일환으로 이 상태를 평가하여 웨이크업 소스의 유효성이 적극적으로 검사되고 있는지, 이미 유효한 웨이크업 신호를 보냈는지, 또는 유효성 검사 시간 창이 초과되었는지 확인할 것으로 보입니다. 질문 Q-a3f721e8f1753eb1 (열림)

이 텍스트는 자동으로 생성되었습니다. 모든 정보는 각 릴리스의 사양 요구사항만을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 EcuM_ResetType [SWS_EcuM_04044] 📄 PDF

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

타입 EcuM_StateType [SWS_EcuM_91005] 📄 PDF

ECU State Manager states.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 04e4b37b6e32 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

EcuM_StateType 타입은 uint8에서 파생된 데이터 타입으로, 헤더 EcuM.h를 통해 제공되며 ECU State Manager의 작동 상태를 나타냅니다([SWS_EcuM_91005]). EcuM 모듈은 EcuM_StateType에 나열된 모든 상태를 정의해야 합니다([SWS_EcuM_02664]). 값 범위는 부분 상태 마스크 ECUM_SUBSTATE_MASK(0x0f)과 주요 상태 ECUM_STATE_STARTUP(0x10), ECUM_STATE_RUN(0x32), ECUM_STATE_POST_RUN(0x33), ECUM_STATE_SHUTDOWN(0x40) 및 ECUM_STATE_SLEEP(0x50)을 포함합니다([SWS_EcuM_91005]).

사용법 및 상호작용

이 데이터 타입은 BswM과 EcuM 간의 상태 통신을 위한 핵심 매개변수 역할을 합니다:

  • EcuM으로의 상태 변경: 서비스 ID 0x2b을 갖는 동기식 및 재진입 가능 함수 호출 EcuM_SetState(EcuM_StateType state)을 통해 BswM은 EcuM 모듈에 상태 변경을 알립니다([SWS_EcuM_04122]).
  • BswM으로의 상태 보고: EcuM은 인터페이스 BswM_EcuM_CurrentState(EcuM_StateType State)을 호출하여 BswM에 현재 상태를 보고합니다([SWS_EcuM_04143]).

동시성, 순서 및 오류 처리

시간적 순서와 관련하여, EcuM에 의한 새 상태 설정은 RTE가 해당 확인(Acknowledgement) 포트를 통해 피드백을 제공한 후에만 수행되어야 한다는 규정이 적용됩니다([SWS_EcuM_04143]). 제공된 소스에는 이 데이터 타입에 대한 특정 오류 코드, 반환값 또는 DET/DEM 보고가 정의되어 있지 않습니다.

이 사용 지침은 명세 요구사항을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 EcuM_Mode [SWS_EcuM_04107] 📄 PDF

–

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 930c9709cbac 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

타입 EcuM_Mode은 [SWS_EcuM_04107]에 따라 ModeDeclarationGroup로 정의되며 ECU State Manager의 핵심 상태를 나타냅니다. 초기 모드로 STARTUP이 지정되어 있습니다. 또한 이 그룹에는 정의된 모드 POST_RUN, RUN, SHUTDOWN 및 SLEEP이 포함됩니다 [SWS_EcuM_04107].

시스템 연계에서 EcuM_Mode은 서비스 인터페이스 EcuM_CurrentMode 내의 모드 그룹 currentMode을 위한 타입 기반 역할을 합니다 [SWS_EcuM_04108]. 이 인터페이스를 통해 현재 ECU 모드를 조회하거나 RTE 모드 메커니즘을 통해 다른 소프트웨어 컴포넌트로 신호할 수 있습니다.

호출 컨텍스트 및 동시성과 관련하여 타입 자체의 사양에는 재진입성이나 오류 코드에 대한 명시적인 제한이 포함되어 있지 않습니다. 상태 전환 관리는 EcuM의 관련 서비스 인터페이스를 통해 이루어집니다.

이 지침은 자동으로 생성되었으며 AUTOSAR R20-11 사양 데이터를 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 currentMode [SWS_EcuM_04112] 📄 PDF

–

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: b0199fd54780 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

요소 currentMode은(는) EcuM 모듈의 Provided 포트로 정의되며 소프트웨어 아키텍처에 서비스 인터페이스 EcuM_CurrentMode을(를) 제공합니다 [SWS_EcuM_04112]. 이 서비스 인터페이스는 현재 ECU 모드를 읽는 역할을 하며 데이터 타입 EcuM_Mode을(를) 기반으로 모드 그룹 currentMode을(를) 캡슐화합니다 [SWS_EcuM_04108].

시스템 작동 중에는 상태 변경 신호를 보내는 데 사용됩니다:

  • 호출 및 사용법: 모드 전환이 발생하자마자 EcuM은 RTE 모드 포트를 통해 이를 소프트웨어 컴포넌트(SW-C)에 보고합니다 [SWS_EcuM_04133]. 포트 이름 currentMode에 대한 사양 가정을 따르고 직접 RTE API를 사용할 때 이를 위해 함수 Rte_Switch_currentMode_currentMode( Rte_ModeType_EcuM_Mode mode)이(가) 호출됩니다 [SWS_EcuM_04133].
  • 매개변수 및 반환값: 매개변수 mode은(는) 새로 진입할 모드를 RTE에 전달합니다 [SWS_EcuM_04133]. 스위치 API에서 제공하는 Rte_StatusType 타입의 반환값은 평가되지 않으며 명세에 따라 반드시 무시해야 합니다 [SWS_EcuM_04133].
  • 상호작용: 모드 변경에 대한 알림을 받아야 하는 소프트웨어 컴포넌트는 모드 스위치 인터페이스 EcuM_CurrentMode을(를) Required 포트로 요청해야 합니다 [SWS_EcuM_04133].

이 사용 지침은 자동으로 생성되었으며 R20-11 릴리스의 명세 요구사항만을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 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.

타입 EcuM_ShutdownModeType [SWS_EcuM_04101] 📄 PDF

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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 799a0b090179 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용 및 값 범위

데이터 타입 EcuM_ShutdownModeType은(는) uint16을(를) 기반으로 하며 헤더 파일 Rte_EcuM_Type.h을(를) 통해 제공됩니다 [SWS_EcuM_04101]. 이는 ECU State Manager에 구성된 모드를 매핑합니다. 값 범위에는 다음이 포함됩니다:

  • EcuMSleepModeId에 따라 구성된 Sleep 모드 [SWS_EcuM_04101] 및
  • 오프셋 256 + EcuMResetModeId에서 계산된 구성된 Reset 모드 [SWS_EcuM_04101].

상호작용 및 호출 컨텍스트

이 타입은 ECU Manager의 동기식 및 재진입성 서비스에서 사용됩니다:

  • EcuM_SelectShutdownTarget은(는) 구체적인 Sleep 모드(대상 ECUM_SHUTDOWN_TARGET_SLEEP의 경우) 또는 Reset 메커니즘(대상 ECUM_SHUTDOWN_TARGET_RESET의 경우)을 지정하기 위해 shutdownMode을(를) 입력 매개변수로 취합니다 [SWS_EcuM_02822].
  • EcuM_GetShutdownTarget은(는) 현재 Shutdown 대상에 대해 구성된 어떤 Sleep 또는 Reset 모드가 선택되었는지를 EcuM_ShutdownModeType에 대한 포인터 매개변수를 통해 반환합니다 [SWS_EcuM_02824].
  • EcuM_GetLastShutdownTarget은(는) 이전 Shutdown 프로세스의 Shutdown 모드를 출력 매개변수를 통해 출력합니다 [SWS_EcuM_02825]. 서비스 인터페이스 EcuM_ShutdownTarget을(를) 통해 이 기능은 소프트웨어 컴포넌트(SW-C)에서도 사용할 수 있습니다 [SWS_EcuM_03011].

오류 처리 및 제약 조건

함수들은 Std_ReturnType을(를) 반환합니다. 예를 들어 EcuM_GetShutdownTarget 또는 EcuM_GetLastShutdownTarget에 NULL 포인터가 전달되면 호출은 E_NOT_OK(으)로 실패합니다 [SWS_EcuM_02824], [SWS_EcuM_02825]. 성공적으로 수행되면 서비스는 E_OK을(를) 보고합니다 [SWS_EcuM_02822], [SWS_EcuM_03011].

이 사용 지침은 명세 요구사항을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 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#e632bf4c
Content hash
e632bf4c
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_ECUStateManager.pdf#nameddest=SWS_EcuM_02813

주제 맵

초기화 및 상태

2

서비스 · Release…

2

서비스 · Request…

2

상세 보기

개요에서 항목을 선택하세요.

초기화 및 상태

Returns the version information of this module.

void EcuM_GetVersionInfo (Std_VersionInfoType* versioninfo);
EcuM_Init 함수

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

void EcuM_Init (void);

서비스 · 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);

서비스 · 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);

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);

서비스 · 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 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);

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);

서비스 · 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);

서비스 · 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);

서비스 · 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);

서비스 · 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);

서비스 · 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);

서비스 · 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);

서비스 · 기타

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);

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);

주기적

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);

타입

–

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

EcuM_Mode 타입

–

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.