ECU State Manager (EcuM)
Controls ECU lifecycle states: Startup, Run, PostRun, Sleep, and Shutdown.
Funktionen — Übersicht
void EcuM_GetVersionInfo (Std_VersionInfoType* versioninfo);Returns the version information of this module.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.void EcuM_Init (void);Initializes the ECU state manager and carries out the startup procedure.void EcuM_StartupTwo (void);This function implements the STARTUP II state.void EcuM_Shutdown (void);Typically called from the shutdown hook, this function takes over execution control and will carry out GO OFF II activities.void EcuM_SetState (EcuM_StateType state);Function called by BswM to notify about State Switch.Std_ReturnType EcuM_RequestRUN (EcuM_UserType user);Places a request for the RUN state.Std_ReturnType EcuM_ReleaseRUN (EcuM_UserType user);Releases a RUN request previously done with a call to EcuM_RequestRUN.Std_ReturnType EcuM_RequestPOST_RUN (EcuM_UserType user);Places a request for the POST RUN state.Std_ReturnType EcuM_ReleasePOST_RUN (EcuM_UserType user);Releases a POST RUN request previously done with a call to EcuM_RequestPOST_RUN.Std_ReturnType EcuM_SelectShutdownTarget (EcuM_ShutdownTargetType shutdownTarget, EcuM_ShutdownModeType shutdownMode);EcuM_SelectShutdownTarget selects the shutdown target.Std_ReturnType EcuM_GetShutdownTarget (EcuM_ShutdownTargetType* shutdownTarget, EcuM_ShutdownModeType* shutdownMode);EcuM_GetShutdownTarget returns the currently selected shutdown target as set by EcuM_ SelectShutdownTarget.Std_ReturnType EcuM_GetLastShutdownTarget (EcuM_ShutdownTargetType* shutdownTarget, EcuM_ShutdownModeType* shutdownMode);EcuM_GetLastShutdownTarget returns the shutdown target of the previous shutdown process.Std_ReturnType EcuM_SelectShutdownCause (EcuM_ShutdownCauseType target);EcuM_SelectShutdownCause elects the cause for a shutdown.Std_ReturnType EcuM_GetShutdownCause (EcuM_ShutdownCauseType* shutdownCause);EcuM_GetShutdownCause returns the selected shutdown cause as set by EcuM_Select ShutdownCause.EcuM_WakeupSourceType EcuM_GetPendingWakeupEvents (void);Gets pending wakeup events.void EcuM_ClearWakeupEvent (EcuM_WakeupSourceType sources);Clears wakeup events.EcuM_WakeupSourceType EcuM_GetValidatedWakeupEvents (void);Gets validated wakeup events.EcuM_WakeupSourceType EcuM_GetExpiredWakeupEvents (void);Gets expired wakeup events.Std_ReturnType EcuM_SetRelWakeupAlarm (EcuM_UserType user, EcuM_TimeType time);EcuM_SetRelWakeupAlarm sets a user's wakeup alarm relative to the current point in time.Std_ReturnType EcuM_SetAbsWakeupAlarm (EcuM_UserType user, EcuM_TimeType time);EcuM_SetAbsWakeupAlarm sets the user's wakeup alarm to an absolute point in time.Std_ReturnType EcuM_AbortWakeupAlarm (EcuM_UserType user);Ecum_AbortWakeupAlarm aborts the wakeup alarm previously set by this user.Std_ReturnType EcuM_GetCurrentTime (EcuM_TimeType* time);EcuM_GetCurrentTime returns the current value of the EcuM clock (i.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).Std_ReturnType EcuM_SetClock (EcuM_UserType user, EcuM_TimeType time);EcuM_SetClock sets the EcuM clock time to the provided value.Std_ReturnType EcuM_SelectBootTarget (EcuM_BootTargetType target);EcuM_SelectBootTarget selects a boot target.Std_ReturnType EcuM_GetBootTarget (EcuM_BootTargetType* target);EcuM_GetBootTarget returns the current boot target - see EcuM_SelectBootTarget.void EcuM_SetWakeupEvent (EcuM_WakeupSourceType sources);Sets the wakeup event.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...void EcuM_ErrorHook (uint16 reason);The ECU State Manager will call the error hook if the error codes "ECUM_E_RAM_CHECK_ FAILED" or...void EcuM_AL_SetProgrammableInterrupts (void);If the configuration parameter EcuMSetProgrammableInterrupts is set to true, this callout Ecu M_AL_SetProgrammableInterrupts...void EcuM_AL_DriverInitZero (void);This callout shall provide driver initialization and other hardware-related startup activities for loading the post-build...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...void EcuM_AL_DriverInitOne (void);This callout shall provide driver initialization and other hardware-related startup activities in case of a power on reset.void EcuM_LoopDetection (void);If the configuration parameter EcuMResetLoopDetection is set to true, this callout EcuM_Loop Detection is called on every startup.void EcuM_OnGoOffOne (void);This call allows the system designer to notify that the GO OFF I state is about to be entered.void EcuM_OnGoOffTwo (void);This call allows the system designer to notify that the GO OFF II state is about to be entered.void EcuM_AL_SwitchOff (void);This callout shall take the code for shutting off the power supply of the ECU.void EcuM_AL_Reset (EcuM_ResetType reset);This callout shall take the code for resetting the ECU.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...void EcuM_GenerateRamHash (void);see EcuM_CheckRamHashvoid EcuM_SleepActivity (void);This callout is invoked periodically in all reduced clock sleep modes.void EcuM_StartCheckWakeup (EcuM_WakeupSourceType WakeupSource);This API is called by the ECU Firmware to start the CheckWakeupTimer for the corresponding WakeupSource.void EcuM_CheckWakeup (EcuM_WakeupSourceType wakeupSource);This callout is called by the EcuM to poll a wakeup source.void EcuM_EndCheckWakeup (EcuM_WakeupSourceType WakeupSource);This API is called by any SW Module whose wakeup source is checked asynchronously (e.uint8 EcuM_CheckRamHash (void);This callout is intended to provide a RAM integrity test.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...void EcuM_AL_DriverRestart (void);This callout shall provide driver initialization and other hardware-related startup activities in the wakeup case.void EcuM_StartWakeupSources (EcuM_WakeupSourceType wakeupSource);The callout shall start the given wakeup source(s) so that they are ready to perform wakeup validation.void EcuM_CheckValidation (EcuM_WakeupSourceType wakeupSource);This callout is called by the EcuM to validate a wakeup source.void EcuM_StopWakeupSources (EcuM_WakeupSourceType wakeupSource);The callout shall stop the given wakeup source(s) after unsuccessful wakeup validation.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.
Typen — Übersicht
struct EcuM_ConfigTypeA pointer to such a structure shall be provided to the ECU State Manager initialization routine for configuration.enum EcuM_RunStatusTypeResult of the Run Request Protocol sent to BswMEcuM_WakeupSourceTypeEcuM_WakeupSourceType defines a bitfield with 5 pre-defined positions (see Range).enum EcuM_WakeupStatusTypeThe type describes the possible states of a wakeup source.EcuM_ResetTypeThis type describes the reset mechanisms supported by the ECU State Manager.enum EcuM_StateTypeECU State Manager states.EcuM_ModecurrentModeEcuM_UserTypeUnique value for each user.EcuM_TimeTypeThis data type represents the time of the ECU Manager module.EcuM_ShutdownCauseTypeThis type describes the cause for a shutdown by the ECU State Manager.enum EcuM_ShutdownModeTypeThis data type represents the modes of the ECU Manager module.EcuM_ShutdownTargetType
Funktionen & Typen — Detailansicht
함수 EcuM_GetVersionInfo [SWS_EcuM_02813] 📄 PDF
void EcuM_GetVersionInfo (Std_VersionInfoType* versioninfo);
Returns the version information of this module.
함수 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.
동기식 및 재진입 가능 함수인 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)
동기 서비스 함수 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.
동기식 및 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.
동기 서비스 함수 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.
사용법 및 호출 컨텍스트
동기식 함수 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.
사용
동기식 및 재진입 함수 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.
사용
동기식 함수 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.
사용
동기식 함수 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.
사용법 및 의미론
동기식 및 재진입 가능 함수 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: 지정된 사용자에 대해 활성 요청이 등록되지 않았거나 유효하지 않은 사용자 식별자가 전달된 경우 vermutlichE_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.
동기식 서비스 함수 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_GetShutdownTarget [SWS_EcuM_02824] 📄 PDF
Std_ReturnType EcuM_GetShutdownTarget (EcuM_ShutdownTargetType* shutdownTarget, EcuM_ShutdownModeType* shutdownMode);
EcuM_GetShutdownTarget returns the currently selected shutdown target as set by EcuM_ SelectShutdownTarget. EcuM_GetShutdownTarget is part of the ECU Manager Module port interface.
함수 EcuM_GetLastShutdownTarget [SWS_EcuM_02825] 📄 PDF
Std_ReturnType EcuM_GetLastShutdownTarget (EcuM_ShutdownTargetType* shutdownTarget, EcuM_ShutdownModeType* shutdownMode);
EcuM_GetLastShutdownTarget returns the shutdown target of the previous shutdown process. EcuM_GetLastShutdownTarget is part of the ECU Manager Module port interface.
함수 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.
동기식 함수 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_GetShutdownCause [SWS_EcuM_04051] 📄 PDF
Std_ReturnType EcuM_GetShutdownCause (EcuM_ShutdownCauseType* shutdownCause);
EcuM_GetShutdownCause returns the selected shutdown cause as set by EcuM_Select ShutdownCause. EcuM_GetShutdownCause is part of the ECU Manager Module port interface.
함수 EcuM_GetPendingWakeupEvents [SWS_EcuM_02827] 📄 PDF
EcuM_WakeupSourceType EcuM_GetPendingWakeupEvents (void);
Gets pending wakeup events.
함수 EcuM_ClearWakeupEvent [SWS_EcuM_02828] 📄 PDF
void EcuM_ClearWakeupEvent (EcuM_WakeupSourceType sources);
Clears wakeup events.
동기 서비스 함수 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_GetValidatedWakeupEvents [SWS_EcuM_02830] 📄 PDF
EcuM_WakeupSourceType EcuM_GetValidatedWakeupEvents (void);
Gets validated wakeup events.
함수 EcuM_GetExpiredWakeupEvents [SWS_EcuM_02831] 📄 PDF
EcuM_WakeupSourceType EcuM_GetExpiredWakeupEvents (void);
Gets expired wakeup events.
함수 EcuM_SetRelWakeupAlarm [SWS_EcuM_04054] 📄 PDF
Std_ReturnType EcuM_SetRelWakeupAlarm (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.
함수 EcuM_SetAbsWakeupAlarm [SWS_EcuM_04057] 📄 PDF
Std_ReturnType EcuM_SetAbsWakeupAlarm (EcuM_UserType user, EcuM_TimeType time);
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.
함수 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.
동기 함수 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.
[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.
동기 함수 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_SetWakeupEvent [SWS_EcuM_02826] 📄 PDF
void EcuM_SetWakeupEvent (EcuM_WakeupSourceType sources);
Sets the wakeup event.
함수 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.
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.
동기식 및 재진입 불가 콜백 함수인 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.
사용 및 호출 조건
콜아웃 함수 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.
사용
콜아웃 함수 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.
함수 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.
사용법 및 의미론
함수 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.
함수 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.
사용
함수 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.
사양에 따르면 동기 함수 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.
사용
콜아웃 함수 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.
콜아웃 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.
함수 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
함수 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.
사용법 및 호출 컨텍스트
함수 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.
사용법 및 호출 컨텍스트
동기 인터페이스 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.
콜아웃 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.
동기식 함수 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.
함수 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.
서비스 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.
콜아웃 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.
콜아웃 함수 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().
함수 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.
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.
사용법 및 호출 컨텍스트
함수 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
데이터 타입 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.
데이터 타입 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.
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
타입 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
요소 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_UserType [SWS_EcuM_91004] 📄 PDF
Unique value for each user.
타입 EcuM_TimeType [SWS_EcuM_04102] 📄 PDF
This data type represents the time of the ECU Manager module.
타입 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.
사용 및 값 범위
데이터 타입 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)
타입 EcuM_ShutdownTargetType [SWS_EcuM_04136] 📄 PDF
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
gemini-3.8-flash-low· 2026-10-13 · 독일어 원문