AUTOSAR Classic System Services
Die System Services steuern den gesamten ECU-Lebenszyklus von Power-On über Wakeup, Betriebszustände, Modus-Arbitrierung (BswM) bis zum sicheren Herunterfahren und Programmlauf-Überwachung (WdgM).
초기화 및 상태
Arti_GetVersionInfoArti_InitBswM_DeinitBswM_GetVersionInfoBswM_InitEcuM_GetVersionInfoEcuM_InitHTMSS_GetVersionInfoHTMSS_InitWdgM_DeInitWdgM_GetVersionInfoWdgM_Init서비스 · Get…
서비스 · Com…
서비스 · A…
서비스 · Set…
서비스 · B…
서비스 · Ld…
서비스 · Nv…
서비스 · Check…
서비스 · Dcm…
서비스 · Ecu…
서비스 · Lin…
서비스 · Request…
서비스 · Sd…
서비스 · Select…
서비스 · Start…
서비스 · 기타
BswM_BswMPartitionRestartedBswM_CanSM_CurrentStateBswM_EthIf_PortGroupLinkStateChgBswM_EthSM_CurrentStateBswM_FrSM_CurrentStateBswM_J1939DcmBroadcastStatusBswM_J1939Nm_StateChangeNotificationBswM_Nm_CarWakeUpIndicationBswM_Nm_StateChangeNotificationBswM_WdgM_RequestPartitionResetEcuM_AbortWakeupAlarmEcuM_ClearWakeupEventEcuM_DeterminePbConfigurationEcuM_DisableWakeupSourcesEcuM_EnableWakeupSourcesEcuM_EndCheckWakeupEcuM_ErrorHookEcuM_GenerateRamHashEcuM_GoDownHaltPollEcuM_LoopDetectionEcuM_OnGoOffOneEcuM_OnGoOffTwoEcuM_ReleasePOST_RUNEcuM_ReleaseRUNEcuM_ShutdownEcuM_SleepActivityEcuM_StartupTwoEcuM_StopWakeupSourcesEcuM_ValidateWakeupEventHTMSS_ShutdownTestErrorHookHTMSS_StartupTestErrorHookSwCluC_DemProxy_Init_SwCluCDemBaseSocketSwCluC_FiMProxy_Init_SwCluCFiMBaseSocketSwCluC_OsProxy_Init_SwCluCOsProxyOsBaseSocketSwCluC_Xcc_Init1SwCluC_Xcc_Init2WdgM_CheckpointReachedWdgM_PerformReset콜백
SwCluC_ComProxy_BS_CbkRxAckSwCluC_ComProxy_BS_ComCbkRxIndicationSwCluC_ComProxy_BS_ComCbkTpRxIndicationSwCluC_ComProxy_BS_ComCbkTxConfirmationSwCluC_LdComProxy_BS_LdComCbkRxIndicationSwCluC_LdComProxy_BS_LdComCbkTpRxIndicationSwCluC_LdComProxy_BS_LdComCbkTpTxConfirmationSwCluC_LdComProxy_BS_LdComCbkTxConfirmation콜아웃 및 예상 인터페이스
<BswMUserCalloutFunction><Resource Entry Group><Resource Entry Group>#2주기적
BswM_MainFunctionEcuM_MainFunctionWdgM_MainFunction타입
BswM_ConfigTypeBswM_ModeTypeBswM_UserTypecurrentModeEcuM_ConfigTypeEcuM_ModeEcuM_ResetTypeEcuM_RunStatusTypeEcuM_ShutdownCauseTypeEcuM_ShutdownModeTypeEcuM_ShutdownTargetTypeEcuM_StateTypeEcuM_TimeTypeEcuM_UserTypeEcuM_WakeupSourceTypeEcuM_WakeupStatusTypeglobalmodeHTMSS_TestCfgTypeHTMSS_TestGroupTypeHTMSS_TestResultTypeHTMSS_TestStatusTypeSwCluC_BManif_ConCtrlTypeSwCluC_BManif_GlobalResourceIdTypeSwCluC_BManif_HandleIndexTypeSwCluC_BManif_HeaderTypeSwCluC_BManif_MachineIdTypeSwCluC_BManif_ResourceGuardValueTypeSwCluC_BManif_ResourcePropertiesTypeSwCluC_BManif_ResourceTypeSwCluC_BManif_SwClusterIdTypeSwCluC_BManif_TableIndexTypeSwCluC_BManif_VoidFncPtrTypeWdgM_CheckpointIdTypeWdgM_ConfigTypeWdgM_GlobalStatusTypeWdgM_LocalStatusTypeWdgM_ModeWdgM_ModeTypeWdgM_SupervisedEntityIdType함수
<BswMUserCalloutFunction><Resource Entry Group><Resource Entry Group>#2Arti_GetVersionInfoArti_InitBswM_BswMPartitionRestartedBswM_CanSM_CurrentStateBswM_ComM_CurrentModeBswM_ComM_CurrentPNCModeBswM_ComM_InitiateResetBswM_Dcm_ApplicationUpdatedBswM_Dcm_CommunicationMode_CurrentStateBswM_DeinitBswM_EcuM_CurrentStateBswM_EcuM_CurrentWakeupBswM_EcuM_RequestedStateBswM_EthIf_PortGroupLinkStateChgBswM_EthSM_CurrentStateBswM_FrSM_CurrentStateBswM_GetVersionInfoBswM_InitBswM_J1939DcmBroadcastStatusBswM_J1939Nm_StateChangeNotificationBswM_LinSM_CurrentScheduleBswM_LinSM_CurrentStateBswM_LinTp_RequestModeBswM_MainFunctionBswM_Nm_CarWakeUpIndicationBswM_Nm_StateChangeNotificationBswM_NvM_CurrentBlockModeBswM_NvM_CurrentJobModeBswM_RequestModeBswM_Sd_ClientServiceCurrentStateBswM_Sd_ConsumedEventGroupCurrentStateBswM_Sd_EventHandlerCurrentStateBswM_WdgM_RequestPartitionResetEcuM_AbortWakeupAlarmEcuM_AL_DriverInitOneEcuM_AL_DriverInitZeroEcuM_AL_DriverRestartEcuM_AL_ResetEcuM_AL_SetProgrammableInterruptsEcuM_AL_SwitchOffEcuM_CheckRamHashEcuM_CheckValidationEcuM_CheckWakeupEcuM_ClearWakeupEventEcuM_DeterminePbConfigurationEcuM_DisableWakeupSourcesEcuM_EnableWakeupSourcesEcuM_EndCheckWakeupEcuM_ErrorHookEcuM_GenerateRamHashEcuM_GetBootTargetEcuM_GetCurrentTimeEcuM_GetExpiredWakeupEventsEcuM_GetLastShutdownTargetEcuM_GetPendingWakeupEventsEcuM_GetShutdownCauseEcuM_GetShutdownTargetEcuM_GetValidatedWakeupEventsEcuM_GetVersionInfoEcuM_GetWakeupTimeEcuM_GoDownHaltPollEcuM_InitEcuM_LoopDetectionEcuM_MainFunctionEcuM_OnGoOffOneEcuM_OnGoOffTwoEcuM_ReleasePOST_RUNEcuM_ReleaseRUNEcuM_RequestPOST_RUNEcuM_RequestRUNEcuM_SelectBootTargetEcuM_SelectShutdownCauseEcuM_SelectShutdownTargetEcuM_SetAbsWakeupAlarmEcuM_SetClockEcuM_SetRelWakeupAlarmEcuM_SetStateEcuM_SetWakeupEventEcuM_ShutdownEcuM_SleepActivityEcuM_StartCheckWakeupEcuM_StartupTwoEcuM_StartWakeupSourcesEcuM_StopWakeupSourcesEcuM_ValidateWakeupEventHTMSS_GetVersionInfoHTMSS_InitHTMSS_ShutdownTestErrorHookHTMSS_StartTestHTMSS_StartupTestErrorHookStatusTypeHTMSS_GetTestStatusSwCluC_BManif_GetConSwClusterId_ResourceEntryGroup_HandleSwCluC_BManif_GetConSwClusterId_ResourceEntryGroup_ResourceEntry_HandleSwCluC_BManif_GetHandle_ResourceEntryGroup_HandleSwCluC_BManif_GetHandle_ResourceEntryGroup_ResourceEntry_HandleSwCluC_BManif_GetValidityMarkerSwCluC_ComProxy_BS_CbkRxAckSwCluC_ComProxy_BS_ComCbkCopyTxDataSwCluC_ComProxy_BS_COMCbkInvSwCluC_ComProxy_BS_ComCbkRxIndicationSwCluC_ComProxy_BS_COMCbkRxTOutSwCluC_ComProxy_BS_COMCbkTAckSwCluC_ComProxy_BS_COMCbkTErrSwCluC_ComProxy_BS_ComCbkTpRxIndicationSwCluC_ComProxy_BS_ComCbkTriggerTransmitSwCluC_ComProxy_BS_ComCbkTxConfirmationSwCluC_ComProxy_BS_COMCbkTxTOutSwCluC_ComProxy_Init_SwCluCComBaseSocketSwCluC_DcmProxy_Init_SwCluCDcmBaseSocketSwCluC_DemProxy_Init_SwCluCDemBaseSocketSwCluC_FiMProxy_Init_SwCluCFiMBaseSocketSwCluC_LdComProxy_BS_LdComCbkCopyRxDataSwCluC_LdComProxy_BS_LdComCbkCopyTxDataSwCluC_LdComProxy_BS_LdComCbkRxIndicationSwCluC_LdComProxy_BS_LdComCbkStartOfReceptionSwCluC_LdComProxy_BS_LdComCbkTpRxIndicationSwCluC_LdComProxy_BS_LdComCbkTpTxConfirmationSwCluC_LdComProxy_BS_LdComCbkTriggerTransmitSwCluC_LdComProxy_BS_LdComCbkTxConfirmationSwCluC_LdComProxy_Init_SwCluCLdComBaseSocketSwCluC_NvMProxy_Init_SwCluCNvMBaseSocketSwCluC_NvMProxy_MultiBlockReadAllJobFinishedSwCluC_OsProxy_Init_SwCluCOsProxyOsBaseSocketSwCluC_Xcc_Init1SwCluC_Xcc_Init2WdgM_CheckpointReachedWdgM_DeInitWdgM_GetFirstExpiredSEIDWdgM_GetGlobalStatusWdgM_GetLocalStatusWdgM_GetModeWdgM_GetVersionInfoWdgM_InitWdgM_MainFunctionWdgM_PerformResetWdgM_SetMode타입
BswM_ConfigTypeBswM_ModeTypeBswM_UserTypecurrentModeEcuM_ConfigTypeEcuM_ModeEcuM_ResetTypeEcuM_RunStatusTypeEcuM_ShutdownCauseTypeEcuM_ShutdownModeTypeEcuM_ShutdownTargetTypeEcuM_StateTypeEcuM_TimeTypeEcuM_UserTypeEcuM_WakeupSourceTypeEcuM_WakeupStatusTypeglobalmodeHTMSS_TestCfgTypeHTMSS_TestGroupTypeHTMSS_TestResultTypeHTMSS_TestStatusTypeSwCluC_BManif_ConCtrlTypeSwCluC_BManif_GlobalResourceIdTypeSwCluC_BManif_HandleIndexTypeSwCluC_BManif_HeaderTypeSwCluC_BManif_MachineIdTypeSwCluC_BManif_ResourceGuardValueTypeSwCluC_BManif_ResourcePropertiesTypeSwCluC_BManif_ResourceTypeSwCluC_BManif_SwClusterIdTypeSwCluC_BManif_TableIndexTypeSwCluC_BManif_VoidFncPtrTypeWdgM_CheckpointIdTypeWdgM_ConfigTypeWdgM_GlobalStatusTypeWdgM_LocalStatusTypeWdgM_ModeWdgM_ModeTypeWdgM_SupervisedEntityIdType주제 맵
BswM
35EcuM
65HTMSS
10SwCluC
47WdgM
19이 릴리스에 대한 요소 데이터가 없습니다
Arti
Returns the version information of this module.
void Arti_GetVersionInfo(Std_VersionInfoType* VersionInfoPtr);Service to initialize the ARTI module
void Arti_Init(void);BswM
Function called by the Bsw M when a Bsw MUser Callout is executed. The function name and all function parameters are defined b y the Bsw MUser Callout Function configuration parameter. Any return values are ignored by the Bsw M.
void <BswMUserCalloutFunction> (implementation_specific -);Function called by Restart Task if the partition containing the Bsw M has been restarted.
void BswM_BswMPartitionRestarted (void);Function called by Can SM to indicate its current state. Ava ilable via Bsw M_ Can SM.h
void BswM_CanSM_CurrentState (NetworkHandleType Network, CanSM_BswMCurrentStateType CurrentState);Function called by Com M to indicate the current communication mode of a Com M channel.
void BswM_ComM_CurrentMode (NetworkHandleType Network, ComM_ModeType RequestedMode);Function is called by Com M to indicate the current mode of the PNC. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_BSWModeManager
void BswM_ComM_CurrentPNCMode (PNCHandleType PNC, ComM_PncModeType CurrentPncMode);Function is called by Com M to signal a shutdown.
void BswM_ComM_InitiateReset (void);This function is called by the DCM in order to report an updated application.
void BswM_Dcm_ApplicationUpdated (void);Function called by DCM to inform the Bsw M about the current state of the communication mode.
void BswM_Dcm_CommunicationMode_CurrentState (NetworkHandleType Network, Dcm_CommunicationModeType RequestedMode);Deinitializes the BSW Mode Manager.
void BswM_Deinit (void);Function called Ecu M to indicate the current ECU Operation Mode.
void BswM_EcuM_CurrentState (EcuM_StateType CurrentState);Function called by Ecu M to indicate the current state of a wakeup source.
void BswM_EcuM_CurrentWakeup (EcuM_WakeupSourceType source, EcuM_WakeupStatusType state);Function called by Ecu M notify about current Status of the Run Request Protocol.
void BswM_EcuM_RequestedState (EcuM_StateType State, EcuM_RunStatusType CurrentState);Function called by Eth If to indicate the link state change of a certain Ethernet switch port group.
void BswM_EthIf_PortGroupLinkStateChg (EthIf_SwitchPortGroupIdxType PortGroupIdx, EthTrcv_LinkStateType PortGroupState);Function called by Eth SM to indicate its current state.
void BswM_EthSM_CurrentState (NetworkHandleType Network, EthSM_NetworkModeStateType CurrentState);Function called by Fr SM to indicate its current state.
void BswM_FrSM_CurrentState (NetworkHandleType Network, FrSM_BswM_StateType CurrentState);Returns the version information of this module.
void BswM_GetVersionInfo (Std_VersionInfoType* VersionInfo);Initializes the BSW Mode Manager.
void BswM_Init (const BswM_ConfigType* ConfigPtr);This API tells the Bsw M the desired communication status of the available networks. The status will typically be activated via COM I - PDU group switches.
void BswM_J1939DcmBroadcastStatus (uint16 NetworkMask);Notification of current J1939Nm state after state changes. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_BSWModeManager
void BswM_J1939Nm_StateChangeNotification (NetworkHandleType Network, uint8 Node, Nm_StateType NmState);Function called by Lin SM to indicate the currently active schedule table for a specific LIN channel.
void BswM_LinSM_CurrentSchedule (NetworkHandleType Network, LinIf_SchHandleType CurrentSchedule);Function called by Lin SM to indicate its current state.
void BswM_LinSM_CurrentState (NetworkHandleType Network, LinSM_ModeType CurrentState);Function called by Lin TP to request a mode for the corresponding LIN channel. The Lin Tp_ Mode correlates to the LIN schedule table that should be used.
void BswM_LinTp_RequestMode (NetworkHandleType Network, LinTp_Mode LinTpRequestedMode);Main function of the Bsw M
void BswM_MainFunction (void);Function called by Nm to indicate a Car Wakeup.
void BswM_Nm_CarWakeUpIndication (NetworkHandleType Network);Notification of current Nm state after state changes.
void BswM_Nm_StateChangeNotification (NetworkHandleType Network, Nm_StateType currentState);Function called by Nv M to indicate the current block mode of an Nv M block.
void BswM_NvM_CurrentBlockMode (NvM_BlockIdType Block, NvM_RequestResultType CurrentBlockMode);Function called by Nv M to inform the Bsw M about the current state of a multi block job.
void BswM_NvM_CurrentJobMode (NvM_MultiBlockRequestType MultiBlockRequest, NvM_RequestResultType CurrentJobMode);Generic function call to request modes. This function shall only be used by other BSW modules that does not have a specific mode request interface.
void BswM_RequestMode (BswM_UserType requesting_user, BswM_ModeType requested_mode);Function called by Service Discovery to indicate current state of the Client Service (available/ down).
void BswM_Sd_ClientServiceCurrentState (uint16 SdClientServiceHandleId, Sd_ClientServiceCurrentStateType CurrentClientState);Function called by Service Discovery to indicate current status of the Consumed Eventgroup (available/ down).
void BswM_Sd_ConsumedEventGroupCurrentState (uint16 SdConsumedEventGroupHandleId, Sd_ConsumedEventGroupCurrentStateType ConsumedEventGroupState);Function called by Service Discovery to indicate current status of the Event Handler (requested/ released).
void BswM_Sd_EventHandlerCurrentState (uint16 SdEventHandlerHandleId, Sd_EventHandlerCurrentStateType EventHandlerStatus);Function called by Wdg M to request a partition reset.
void BswM_WdgM_RequestPartitionReset (ApplicationType Application);This structure contains all post - build configurable parameters of the BSW Mode AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_BSWModeManager Manager. A pointer to this structure is passed to the BSW Mode Manager initialization function for configuration.
This type identifies the modes that can be requested by Bsw M Users.
This type identifies a Bsw M User that makes mode requests to the Bsw M.
EcuM
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);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);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);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);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);Returns the version information of this module.
void EcuM_GetVersionInfo (Std_VersionInfoType* versioninfo);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);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);Initializes the ECU state manager and carries out the startup procedure. The function will never return (it calls StartOS)
void EcuM_Init (void);If the configuration parameter EcuMResetLoopDetection is set to true, this callout EcuM_Loop Detection is called on every startup.
void EcuM_LoopDetection (void);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);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);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);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);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);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);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 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);This function implements the STARTUP II state.
void EcuM_StartupTwo (void);The callout shall start the given wakeup source(s) so that they are ready to perform wakeup validation.
void EcuM_StartWakeupSources (EcuM_WakeupSourceType wakeupSource);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);
A pointer to such a structure shall be provided to the ECU State Manager initialization routine for configuration.
This type describes the reset mechanisms supported by the ECU State Manager. It can be extended by configuration.
Result of the Run Request Protocol sent to BswM
This type describes the cause for a shutdown by the ECU State Manager. It can be extended by configuration.
This data type represents the modes of the ECU Manager module.
ECU State Manager states.
This data type represents the time of the ECU Manager module.
Unique value for each user.
EcuM_WakeupSourceType defines a bitfield with 5 pre-defined positions (see Range). The bitfield provides one bit for each wakeup source. In WAKEUP, all bits cleared indicates that no wakeup source is known. In STARTUP, all bits cleared indicates that no reason for restart or reset is known. In this case, ECUM_WKSOURCE_RESET shall be assumed.
The type describes the possible states of a wakeup source.
HTMSS
-
void HTMSS_GetVersionInfo(Std_VersionInfoType* versioninfo);Initializes the HTMSS module
void HTMSS_Init(const HTMSS_TestCfgType* ConfigPtr);The ECU State Manager will call the error hook if the HTMSS provided shutdown test results have a failure. In this situation, the integrator has to control the CPU processing based on the system requirements, i.e. reset, safe state etc...
void HTMSS_ShutdownTestErrorHook(void);Starts the MSTP configured tests
Std_ReturnType HTMSS_StartTest(HTMSS_TestGroupType GrpId);The ECU State Manager will call the error hook if the HTMSS provided startup test results have a failure. In this situation, the integrator has to control the CPU processing based on the system requirements, i.e. reset, safe state etc...
void HTMSS_StartupTestErrorHook(void);Returns current test status on requested test
HTMSS_TestStatusType HTMSS_GetTestStatus(HTMSS_TestGroupType GrpId, HTMSS_TestResultType* RequestTestResultPtr);Configuration data structure of HTMSS module
HTMSS_ Test Group Type describes the test group type Variation --
It describes the current test result Variation --
HTMSS_ Test Status Type describes status of test.
SwCluC
Returns the number of actually used - and thereby connected - handle sets Tags: atp.Status=draft
SwCluC_BManif_HandleIndexType SwCluC_BManif_GetNoOfHandleSets_< Resource Entry Group>_<Resource Entry>(void);Returns the number of actually used - and thereby connected - handle sets. Tags: atp.Status=draft
SwCluC_BManif_HandleIndexType SwCluC_BManif_GetNoOfHandleSets_< Resource Entry Group>(SwCluC_BManif_TableIndexType resIndex);Returns the Id of the connected Software Cluster for a Notifier Handle of a Provide Resource Entry or Provide Handle of a Require Resource Entry Tags: atp.Status=draft
SwCluC_BManif_SwClusterIdType SwCluC_BManif_GetConSwClusterId_< ResourceEntryGroup>_<Handle>(SwCluC_BManif_TableIndexType resIndex, SwCluC_BManif_HandleIndexType notifierSetIndex);Returns the Id of the connected Software Cluster for a Notifier Handle of a Provide Resource Entry or a Provide Handle of a Require Resource Entry Tags: atp.Status=draft
SwCluC_BManif_SwClusterIdType SwCluC_BManif_GetConSwClusterId_< ResourceEntryGroup>_<ResourceEntry>_<Handle>(SwCluC_BManif_HandleIndexType notifierSetIndex);Returns the Id of the connected Software Cluster for a Notifier Handle of a Provide Resource Entry or a Provide Handle of a Require Resource Entry Tags: atp.Status=draft
<handleType> SwCluC_BManif_GetHandle_<ResourceEntryGroup>_<Handle>(SwCluC_BManif_TableIndexType resIndex, SwCluC_BManif_HandleIndexType notifierSetIndex);Returns a handle of a Resource Entry in a Resource Entry Group Tags: atp.Status=draft
<handleType> SwCluC_BManif_GetHandle_<ResourceEntryGroup>_< ResourceEntry>_<Handle>(SwCluC_BManif_HandleIndexType notifierSetIndex);Returns the value of the Subscribed Interface Validity Marker. Tags: atp.Status=draft
uint32 SwCluC_BManif_GetValidityMarker(void);This callback function indicates that the signal of the primitive data item/event is ready for reception. It is an implementation of a <ComUser_CbkRxAck> callback. Tags: atp.Status=draft
void SwCluC_ComProxy_<BS>_CbkRxAck(CbkHandleIdType ComUserCbkHandleId);This function is called to acquire the transmit data of an I-PDU segment (N-PDU). Each call to this function provides the next part of the I-PDU data unless retry->TpDataState is TP_ DATARETRY. In this case the function restarts to copy the data beginning at the offset from the current position indicated by retry->TxTpDataCnt. The size of the remaining data is written to the position indicated by availableDataPtr Tags: atp.Status=draft
BufReq_ReturnType SwCluC_ComProxy_<BS>_ComCbkCopyTxData(CbkHandleIdType ComUserCbkHandleId, const PduInfoType* info, const RetryInfoType* retry, PduLengthType* availableDataPtr);This callback function indicates that COM has received a signal and parsed it as "invalid". It is an implementation of a <ComUser_CbkInv> callback. Tags: atp.Status=draft
void SwCluC_ComProxy_<BS>_COMCbkInv(CbkHandleIdType ComUserCbkHandleId);Indication of a received PDU from a lower layer communication interface module. Tags: atp.Status=draft
void SwCluC_ComProxy_<BS>_ComCbkRxIndication(CbkHandleIdType ComUserCbkHandleId, const PduInfoType* PduInfoPtr);This callback function indicates that the aliveTimeout after the last successful reception of the signal of the data item/event has expired (data element outdated). It is an implementation of a <ComUser_CbkRxTOut> callback. Tags: atp.Status=draft
void SwCluC_ComProxy_<BS>_COMCbkRxTOut(CbkHandleIdType ComUserCbkHandleId);This callback function indicates that the signal of the data item/event is already handed over by COM to the PDU router. It is an implementation of a <ComUser_CbkTxAck> callback. Tags: atp.Status=draft
void SwCluC_ComProxy_<BS>_COMCbkTAck(CbkHandleIdType ComUserCbkHandleId);This callback function indicates that an error occurred when the signal of the data item/event was handed over by COM to the PDU router. It is an implementation of a <ComUser_CbkTx Err> callback. Tags: atp.Status=draft
void SwCluC_ComProxy_<BS>_COMCbkTErr(CbkHandleIdType ComUserCbkHandleId);Called after an I-PDU has been received via the TP API, the result indicates whether the transmission was successful or not. Tags: atp.Status=draft
void SwCluC_ComProxy_<BS>_ComCbkTpRxIndication(CbkHandleIdType ComUserCbkHandleId, Std_ReturnType result);Within this API, the upper layer module (called module) shall check whether the available data fits into the buffer size reported by PduInfoPtr->SduLength. If it fits, it shall copy its data into the buffer provided by PduInfoPtr->SduDataPtr and update the length of the actual copied data in PduInfoPtr->SduLength. If not, it returns E_NOT_OK without changing PduInfoPtr. Tags: atp.Status=draft
Std_ReturnType SwCluC_ComProxy_<BS>_ComCbkTriggerTransmit(CbkHandleIdType ComUserCbkHandleId, PduInfoType* PduInfoPtr);The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU. Tags: atp.Status=draft
void SwCluC_ComProxy_<BS>_ComCbkTxConfirmation(CbkHandleIdType ComUserCbkHandleId, Std_ReturnType result);This callback function indicates that the timeout of TransmissionAcknowledgementRequest for sending the signal of the data item/event has expired. It is an implementation of a <ComUser_ CbkTxTOut> callback. Tags: atp.Status=draft
void SwCluC_ComProxy_<BS>_COMCbkTxTOut(CbkHandleIdType ComUserCbkHandleId);SwCluC_ComProxy_Init is intended to allocate and initialize system resources used by the ComProxy linked to this specific socked. Tags: atp.Status=draft
void SwCluC_ComProxy_Init_<SwCluCComBaseSocket>(void);SwCluC_DcmProxy_Init is intended to allocate and initialize system resources used by the DCM Proxy linked to this specific socked. Tags: atp.Status=draft
void SwCluC_DcmProxy_Init_<SwCluCDcmBaseSocket>(void);SwCluC_DemProxy_Init is intended to allocate and initialize system resources used by the DEM Proxy linked to this specific socked. Tags: atp.Status=draft
void SwCluC_DemProxy_Init_<SwCluCDemBaseSocket>(void);SwCluC_FiMProxy_Init is intended to allocate and initialize system resources used by the FiM Proxy linked to this specific socked. Tags: atp.Status=draft
void SwCluC_FiMProxy_Init_<SwCluCFiMBaseSocket>(void);This function is called to provide the received data of an I-PDU segment (N-PDU) to the upper layer. Each call to this function provides the next part of the I-PDU data. The size of the remaining data is written to the position indicated by bufferSizePtr. Tags: atp.Status=draft
BufReq_ReturnType SwCluC_LdComProxy_<BS>_LdComCbkCopyRxData(CbkHandleIdType LdComUserCbkHandleId, const PduInfoType* info, PduLengthType* bufferSizePtr);This function is called to acquire the transmit data of an I-PDU segment (N-PDU). Each call to this function provides the next part of the I-PDU data unless retry->TpDataState is TP_ DATARETRY. In this case the function restarts to copy the data beginning at the offset from the current position indicated by retry->TxTpDataCnt. The size of the remaining data is written to the position indicated by availableDataPtr Tags: atp.Status=draft
BufReq_ReturnType SwCluC_LdComProxy_<BS>_LdComCbkCopyTxData(CbkHandleIdType LdComUserCbkHandleId, const PduInfoType* info, const RetryInfoType* retry, PduLengthType* availableDataPtr);Indication of a received PDU from a lower layer communication interface module. Tags: atp.Status=draft
void SwCluC_LdComProxy_<BS>_LdComCbkRxIndication(CbkHandleIdType LdComUserCbkHandleId, const PduInfoType* PduInfoPtr);This function is called at the start of receiving an N-SDU. The N-SDU might be fragmented into multiple N-PDUs (FF with one or more following CFs) or might consist of a single N-PDU (SF). The service shall provide the currently available maximum buffer size when invoked with TpSdu Length equal to 0. Tags: atp.Status=draft
BufReq_ReturnType SwCluC_LdComProxy_<BS>_LdComCbkStartOfReception(CbkHandleIdType LdComUserCbkHandleId, const PduInfoType* info, PduLengthType TpSduLength, PduLengthType* bufferSizePtr);Called after an I-PDU has been received via the TP API, the result indicates whether the transmission was successful or not. Tags: atp.Status=draft
void SwCluC_LdComProxy_<BS>_LdComCbkTpRxIndication(CbkHandleIdType LdComUserCbkHandleId, Std_ReturnType result);This function is called after a Signal has been transmitted via the TP-API on its network. Tags: atp.Status=draft
void SwCluC_LdComProxy_<BS>_LdComCbkTpTxConfirmation(CbkHandleIdType LdComUserCbkHandleId, Std_ReturnType result);Within this API, the upper layer module (called module) shall check whether the available data fits into the buffer size reported by PduInfoPtr->SduLength. If it fits, it shall copy its data into the buffer provided by PduInfoPtr->SduDataPtr and update the length of the actual copied data in PduInfoPtr->SduLength. If not, it returns E_NOT_OK without changing PduInfoPtr. Tags: atp.Status=draft
Std_ReturnType SwCluC_LdComProxy_<BS>_LdComCbkTriggerTransmit(CbkHandleIdType LdComUserCbkHandleId, PduInfoType* PduInfoPtr);The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU. Tags: atp.Status=draft
void SwCluC_LdComProxy_<BS>_LdComCbkTxConfirmation(CbkHandleIdType LdComUserCbkHandleId, Std_ReturnType result);SwCluC_LdComProxy_Init is intended to allocate and initialize system resources used by the LdComProxy linked to this specific socked. Tags: atp.Status=draft
void SwCluC_LdComProxy_Init_<SwCluCLdComBaseSocket>(void);SwCluC_NvMProxy_Init is intended to allocate and initialize system resources used by the Nv MProxy linked to this specific socked. Tags: atp.Status=draft
void SwCluC_NvMProxy_Init_<SwCluCNvMBaseSocket>(void);This function informs the NvM proxy of the SwCluC about the end of the NvM_ReadAll job.
void SwCluC_NvMProxy_MultiBlockReadAllJobFinished(void);SwCluC_OsProxy_Init is intended to allocate and initialize system resources used by the Os Proxy linked to this specific socked Tags: atp.Status=draft
void SwCluC_OsProxy_Init_<SwCluCOsProxyOsBaseSocket>(void);SwCluC_Xcc_Init is intended to allocate and initialize system resources used by the Software Cluster Connection. It initializes interface memory which might be needed to be read by other Software Clusters but it is not allowed to do any read access to memory of any another Software Cluster. Tags: atp.Status=draft
void SwCluC_Xcc_Init1(void);SwCluC_Xcc_Init2 is intended to allocate and initialize system resources used by the Software Cluster Connection. It can execute initializations which require a read access to interface memory of another Software Clusters. Tags: atp.Status=draft
void SwCluC_Xcc_Init2(void);Type to code control flags for the connection process. Bit 0..14 are reserved. Tags: atp.Status=draft
Type for the global ID value of a resource Tags: atp.Status=draft
Index type to address a set of handles in the immutable and modifiable interface table Tags: atp.Status=draft
Tags: atp.Status=draft
Type for the global ID value of a resource Tags: atp.Status=draft
Type for the guard value of a resource Tags: atp.Status=draft
Type to code the properties of a resource. Bit 0..5 are reserved. Tags: atp.Status=draft
Type to code the type of a resource Tags: atp.Status=draft
Type of the Software Cluster's ID value Tags: atp.Status=draft
Index type to address the immutable and modifiable interface table Tags: atp.Status=draft
Generic function pointer type according C default type for functions Tags: atp.Status=draft
WdgM
Indicates to the Watchdog Manager that a Checkpoint within a Supervised Entity has been reached.
Std_ReturnType WdgM_CheckpointReached (WdgM_SupervisedEntityIdType SEID, WdgM_CheckpointIdType CheckpointID);De - initializes the Watchdog Manager.
void WdgM_DeInit (void);Returns SEID that first reached the stat e WDGM_ LOCAL_ STATUS_ EXPIRED.
Std_ReturnType WdgM_GetFirstExpiredSEID (WdgM_SupervisedEntityIdType* SEID);Returns the global supervision status of the Watchdog Manager.
Std_ReturnType WdgM_GetGlobalStatus (WdgM_GlobalStatusType* Status);Returns the supervision status of an individual Supervised Entity.
Std_ReturnType WdgM_GetLocalStatus (WdgM_SupervisedEntityIdType SEID, WdgM_LocalStatusType* Status);Returns the current mode of the Watchdog Manager.
Std_ReturnType WdgM_GetMode (WdgM_ModeType* Mode);Returns the version information of this module.
void WdgM_GetVersionInfo (Std_VersionInfoType* VersionInfo);Initializes the Watchdog Manager.
void WdgM_Init (const WdgM_ConfigType* ConfigPtr);Performs the processing of the cyclic Watchdog Manager jobs.
void WdgM_MainFunction (void);Instructs the Watchdog Manager to cause a watchdog reset.
void WdgM_PerformReset (void);Sets the current mode of Watchdog Manager.
Std_ReturnType WdgM_SetMode (WdgM_ModeType Mode);-
This type identifies a Checkpoint in the context of a Supervised Entity for the Watchdog Manager. Note that an individual Checkpoint can only be identified by the pair of Supervised Entity ID and Checkpoint ID.
This structure contains all post - build configurable parameters of the Watchdog Manager. A pointer to this structure is passed to the Watchdog Manager initialization function for configuration. AUTOSAR CP R20 - of D ocument ID : AUTOSAR_SWS_WatchdogManager
This type shall be used for variables that represent the global supervision status of the Watchdog Manager module.
This type shall be used for variables that represent the current status of supervision for individual Supervised Entitie s.
The category of Mode Declaration Group Wdg M_ Mode is EXPLICIT_ ORDER, The attribute value for the Mode Declaration are set as following: "SUPERVISION_ OK" = 0 "SUPERVISION_ FAILED" = 1 "SUPERVISION_ EXPIRED" = 2 "SUPERVISION_ STOPPED" = 3 "SUP ERVISION_ DEACTIVATED" = 4 The on Transition Value is defined as 255
This type distinguishes the different modes that were configured for the Watchdog Manager.
This type identifies an individual Supervised Entity for the Watchdog Manager.
클러스터 가이드AI 생성
ECU 수명 주기를 조정하고, 작동 모드를 중재하며, 기능적 워치독 모니터링을 보장합니다.
ECU 수명 주기를 조정하고, 작동 모드를 중재하며, 기능적 워치독 모니터링을 보장합니다.
모듈 클러스터 System Services는 초기 부팅 단계부터 셧다운까지 ECU의 수명 주기를 제어하고, 작동 모드를 중재하며, 기능 안전 요구사항을 충족하기 위한 프로그램 실행 모니터링을 보장합니다 SafetyConceptStatusReport 15쪽. ECU State Manager는 모드 요청을 취합하고 상태 결정을 BSW Mode Manager에 위임하는 반면, Watchdog Manager는 실행을 모니터링하고 Watchdog Driver를 제어합니다 SWS_ECUStateManager 103쪽. 심각한 제어 흐름 위반이 발생하면 클러스터는 워치독 서비스를 중지하고 안전한 하드웨어 리셋을 강제합니다 [SWS_WdgM_00232].
모듈 클러스터 System Services는 ECU의 수명 주기를 제어하고, 작동 모드를 전환하며, 기능 안전 요구사항에 따라 프로그램 실행 모니터링을 보장합니다 SafetyConceptStatusReport 15쪽. BSW Mode Manager(BswM)는 중앙 결정 주체로 작동하고, ECU State Manager(EcuM)는 StartPreOS, Sleep 및 Shutdown과 같은 하드웨어 특화 단계를 조정하며 BswM으로 요청을 전파합니다 SWS_ECUStateManager 103쪽. 프로그램 실행 모니터링은 Watchdog Manager(WdgM)에 의해 구현되며, 이는 Alive, Deadline 및 제어 흐름 모니터링을 수행하고 Watchdog Driver(Wdg)를 통해 하드웨어를 트리거합니다 [SWS_Wdg_00155].
컨텍스트 다이어그램: System Services와 BSW, RTE 및 하드웨어의 아키텍처 및 협업. 출처: SWS_ECUStateManager 34쪽, AUTOSAR_EXP_ModeManagementGuide 61쪽.
정상 동작 중에는 RUN 또는 POST_RUN과 같은 요구사항이 EcuM에 수집되며, 집계되어 BswM에 보고됩니다 [SWS_BswM_91004]. 구성된 규칙을 평가한 후 BswM는 EcuM_SetState을(를) 통해 상태를 설정하며, 이는 RTE를 통해 컴포넌트에 보고됩니다 [SWS_EcuM_04116]. 수면 단계에서는 웨이크업 이벤트가 표준화된 상태 머신(NONE, PENDING, VALIDATED, EXPIRED)을 통해 처리되고 BswM에 동기식으로 시그널링됩니다 [SWS_BswM_00131].
시퀀스 다이어그램: SW-C, EcuM, BswM 및 RTE 간 ECU Mode Handling의 상호작용 경로. 출처: SWS_ECUStateManager 103쪽, ModeManagementGuide 34쪽.
WdgM에서 치명적인 모니터링 오류가 발생하면 모니터링 상태가 WDGM_GLOBAL_STATUS_STOPPED로 전환되고, 이에 따라 워치독 트리거링이 중지되며 하드웨어가 시스템 리셋을 트리거합니다 [SWS_WdgM_00232]. 구성 또는 호출 오류는 클러스터에 의해 Default Error Tracer(Det)에 표준화된 방식으로 보고됩니다 [SWS_EcuM_03026].
1. 시스템 아키텍처 & 모듈 클러스터의 역할
모듈 클러스터 System Services는 AUTOSAR Classic Platform의 기능적 중추를 형성합니다. 이는 BSW Mode Manager(BswM), ECU State Manager(EcuM), Watchdog Manager(WdgM) 및 하드웨어 지향 Watchdog Driver(Wdg)를 포함합니다 SWS_ECUStateManager 35쪽. 이들 모듈은 함께 ECU의 전체 수명 주기를 제어하고, 하드웨어 지향 및 애플리케이션 작동 모드를 조정하며, 기능 안전을 보장하기 위한 시간적 및 논리적 프로그램 실행 모니터링을 보장합니다 SafetyConceptStatusReport 15쪽.
AUTOSAR 계층 아키텍처에서 BswM, EcuM 및 WdgM는 추상화 및 드라이버 계층 위의 System Services 계층에 위치하는 반면, Microcontroller Abstraction Layer(MCAL)의 일부인 Watchdog Driver(Wdg)는 워치독 타이머의 하드웨어 레지스터를 작동합니다[SWS_Wdg_00106]. 이때 EcuM는 유연한 형태(EcuM Flex)로 OS 시작 전 또는 후의 초기 부팅 및 후기 셧다운 시퀀스를 위한 하드웨어 연결 고리 역할을 합니다. 이는 더 이상 애플리케이션 모드를 위한 자체 복합 상태 머신을 보유하지 않으며, 모드 중재를 BswM에 위임합니다SWS_ECUStateManager 103쪽. UDS(ISO 14229) 및 네트워크 관리 프로토콜과 같은 외부 진단 표준은 정의된 BSW 인터페이스(예: Dcm을 통한 서비스 0x28 CommunicationControl)를 통해 BswM의 규칙 평가에 직접 연동됩니다[SWS_BswM_00048].
컨텍스트 다이어그램: System Services와 BSW, RTE 및 하드웨어의 아키텍처 및 협업. 출처: SWS_ECUStateManager 34쪽, AUTOSAR_EXP_ModeManagementGuide 61쪽.
2. 상호작용 & 모듈 간의 상호작용 경로
클러스터 내의 상호 작용은 명확하게 구분된 제어 및 보고 관계로 특징지어집니다. ECU Mode Handling의 프레임워크 내에서 EcuM은 소프트웨어 컴포넌트(SW-C)로부터 RUN 또는 POST_RUN와 같은 상태에 대한 요청을 수신하고, 집계된 중재 결과를 [SWS_BswM_91004]을 통해 BswM에 전달합니다ModeManagementGuide 34쪽. EcuM은 자체적인 전환 결정을 내리지 않으므로, BswM이 구성된 논리 규칙을 평가하고 EcuM_SetState을 통해 동기식으로 대상 상태를 [SWS_EcuM_04116]에 지시합니다. 그런 다음 EcuM은 RTE를 통해 이 상태를 애플리케이션에 반영하고 BswM_EcuM_CurrentState를 통해 현재 실행 상태를 BswM에 확인합니다[SWS_BswM_91003].
병렬 상호작용 경로는 BswM, WdgM 및 Wdg을(를) 연결합니다. 소프트웨어 컴포넌트와 BSW 모듈이 정의된 체크포인트 도달을 WdgM에 보고하면, 이를 통해 로컬 및 글로벌 모니터링 상태가 결정됩니다 SWS_WatchdogManager 51쪽. WdgM은(는) 제공된 모드 포트를 통해 로컬 모니터링의 상태 변경을 제공합니다 [SWS_WdgM_00148]. 상위 시스템 상태에 따라 BswM은(는) WdgM_SetMode을(를) 통해 Watchdog Manager의 동작 모드를 전환합니다 [SWS_WdgM_00154]. 그런 다음 WdgM은(는) Watchdog Interface(WdgIf)를 통해 Watchdog Driver(Wdg)를 구성하고 Wdg_SetTriggerCondition을(를) 통해 하드웨어 트리거링을 제어합니다 [SWS_Wdg_00155].
시퀀스 다이어그램: SW-C, EcuM, BswM 및 RTE 간 ECU Mode Handling의 상호작용 경로. 출처: SWS_ECUStateManager 103쪽, ModeManagementGuide 34쪽.
3. 동기화, 재진입성 및 태스크 컨텍스트
System Services의 실행은 주기적 태스크 레벨, 비동기 콜백 및 인터럽트 컨텍스트에 결정론적으로 분산됩니다. 모드 관리의 주기적인 주요 부하는 BswM_MainFunction이 담당하며, 이는 OS 태스크의 컨텍스트에서 BSW Scheduler(SchM)에 의해 호출되고 지연 평가될 모든 규칙을 처리합니다[SWS_BswM_00053]. 즉각적인 규칙 평가가 필요한 이벤트가 발생하면, 호출 BSW 지시 또는 SW-C API의 컨텍스트에서 직접 동기식으로 처리됩니다ModemanagementGuide 31쪽.
멀티코어 시스템에서 표준화는 엄격한 자원 할당을 요구합니다. BswM_Init은 파티션 또는 프로세서 코어별로 별도의 인스턴스화를 허용하도록 조건부 재진입이 가능하게 설계되었습니다[SWS_BswM_00002]. 슬립 및 홀트 단계 동안 EcuM는 마스터 코어와 슬레이브 코어 간의 동기화를 보호하기 위해 코어 고유의 OS 자원(RES_AUTOSAR_ECUM_<core#>)을 예약합니다[SWS_EcuM_03010]. EcuM_AL_DriverInitZero 및 EcuM_AL_DriverInitOne을 통한 드라이버 초기화는 각 코어에서 별도로 호출되며 코어 로컬 MCAL 모듈만 독점적으로 초기화합니다[SWS_EcuM_04145]. EcuM_ClearWakeupEvent을 통한 웨이크업 이벤트 삭제는 명시적으로 중단 불가능하며 태스크 컨텍스트와 인터럽트 컨텍스트 모두에서 발생할 수 있습니다[SWS_EcuM_02807].
4. 전형적인 수명 주기 및 동작 모드
ECU의 수명 주기는 표준에 따라 STARTUP, UP, SHUTDOWN 및 SLEEP 단계로 나뉩니다[SWS_EcuM_91005]. STARTUP 단계는 OS 시작 전 시퀀스 StartPreOS에서 EcuM_Init 호출, 리셋 원인 평가 및 EcuM_DeterminePbConfiguration을 통한 포스트 빌드 구성 로드로 시작됩니다AUTOSAR_SWS_ECUStateManager 38쪽. StartOS를 통해 OS로 제어가 전달된 후, StartPostOS에서 EcuM은 SchM 및 BswM를 초기화합니다[SWS_EcuM_02934]. 그 후 BswM이 제어를 이어받아 나머지 BSW 모듈과 애플리케이션을 부팅합니다.
정상 작동 중(단계 UP)에는 EcuM 및 BswM이 모드 RUN 및 POST_RUN과 선택적 Alarm Clock 서비스를 관리합니다SWS_ECUStateManager 75쪽. 슬립 상태(SLEEP)로 전환할 때 클러스터는 구조적으로 HALT(CPU 정지)와 POLL(축소된 CPU 클록) 간을 구분합니다SWS_ECUStateManager 54쪽. 사전에 호출 WdgM_DeInit은 Watchdog Manager를 초기화 해제하고 트리거 타임아웃을 조정하여 셧다운 중 원치 않는 리셋을 방지합니다[SWS_WdgM_00261]. 폴링 시퀀스에서 EcuM는 웨이크업 이벤트가 감지될 때까지 EcuM_SleepActivity 및 EcuM_CheckWakeupHook을 주기적으로 호출하는 검사 루프에서 차단됩니다[SWS_EcuM_03020].
감지된 웨이크업 이벤트는 ECUM_WKSTATUS_NONE에서 PENDING을 거쳐 VALIDATED 또는 EXPIRED까지 엄격한 상태 관리를 거칩니다[SWS_EcuM_04091]. 각 상태 변경은 EcuM가 BswM_EcuM_CurrentWakeup을 사용하여 BswM에 동기식으로 신호합니다[SWS_BswM_00131]. 웨이크업 유효성 검사는 과도 버스 간섭으로부터 보호하며 구성 가능한 유효성 검사 타이머를 통해 시간 창을 모니터링합니다[SWS_EcuM_04004]. 수명 주기가 SHUTDOWN에서 종료되면, OffPostOS이 EcuM_AL_Reset 또는 EcuM_AL_SwitchOff와 같은 통합 콜아웃을 통해 ECU를 리셋하거나 전원을 끄기 전에 OffPreOS이 BswM 및 SchM를 비활성화합니다AUTOSAR_SWS_ECUStateManager 49쪽.
상태 다이어그램: BswM 알림이 포함된 EcuM의 웨이크업 소스 상태 머신. 출처: AUTOSAR_SWS_ECUStateManager 60쪽, [SWS_EcuM_04091].
5. 오류 처리, DET 추적 및 디그레이데이션
런타임 및 구성 오류를 감지하기 위해 클러스터는 Default Error Tracer(Det)에 대한 표준화된 보고 메커니즘을 통합합니다. 엔티티가 사전 요청 없이 EcuM_ReleasePOST_RUN을 통해 릴리스를 발행하려고 시도하면, EcuM는 개발 오류 ECUM_E_MISMATCHED_RUN_RELEASE을 Det에 보고합니다[SWS_EcuM_03026]. 동일한 사용자의 다중 요청은 ECUM_E_MULTIPLE_RUN_REQUESTS으로 감지됩니다[SWS_EcuM_03025]. 마찬가지로 WdgM은 초기화되지 않은 상태에서의 API 호출을 모니터링하고, 초기화 완료 전에 서비스가 호출될 경우 WDGM_E_UNINIT를 보고합니다[SWS_WdgM_00288].
안전 모니터링은 WdgM의 3단계 기능 제어(Alive Supervision, Deadline Supervision 및 논리적 제어 흐름 모니터링)에 기반합니다SafetyConceptStatusReport 47쪽. 모니터링 오류로 인해 결함 허용 오차가 위반되면 글로벌 모니터링 상태가 WDGM_GLOBAL_STATUS_OK에서 FAILED을 거쳐 WDGM_GLOBAL_STATUS_EXPIRED로, 최종적으로 STOPPED로 변경됩니다[SWS_WdgM_00387]. 이 상태에서 WdgM은 모든 워치독 드라이버에 대한 트리거 조건을 0으로 설정하여 하드웨어 워치독이 마이크로컨트롤러를 즉시 리셋하도록 합니다[SWS_WdgM_00232]. 제어된 비상 리셋을 위해 WdgM는 지속적인 후속 트리거링을 중지하고 하드웨어 리셋을 강제하는 서비스 WdgM_PerformReset을 제공합니다[SWS_WdgM_00264]. 장기 슬립 단계 이후의 보호를 위해 EcuM는 또한 RAM 손상 시 잘못된 재시작을 포착하고자 EcuM_CheckRamHash을 통해 휘발성 메모리의 일관성을 확인합니다[SWS_EcuM_02921].
이 가이드는 AUTOSAR Classic Platform R20-11 사양을 기반으로 하며 모듈 클러스터 System Services의 아키텍처와 메커니즘을 요약합니다.
Module im Cluster
AUTOSAR Run-Time Interface (Arti)
AUTOSAR Classic System Services-Modul AUTOSAR Run-Time Interface (Arti, Spezifikation: AUTOSAR_CP_SWS_ARTI.pdf, AUTOSAR_SWS_ClassicPlatformARTI.pdf).
BSW Mode Manager (BswM)
Arbitrates mode requests and executes action lists to control system state transitions.
ECU State Manager (EcuM)
Controls ECU lifecycle states: Startup, Run, PostRun, Sleep, and Shutdown.
HW Test Manager on Startup and Shutdown (HTMSS)
AUTOSAR Classic System Services-Modul HW Test Manager on Startup and Shutdown (HTMSS, Spezifikation: AUTOSAR_CP_SWS_HWTestManager.pdf, AUTOSAR_SWS_HWTestManager.pdf).
BSW Scheduler Module (SchM)
AUTOSAR Classic System Services-Modul BSW Scheduler Module (SchM, Spezifikation: AUTOSAR_SWS_BSW_Scheduler.pdf).
Software Cluster Connection (SwCluC)
AUTOSAR Classic System Services-Modul Software Cluster Connection (SwCluC, Spezifikation: AUTOSAR_CP_SWS_SoftwareClusterConnection.pdf, AUTOSAR_SWS_SoftwareClusterConnection.pdf).
Watchdog Manager (WdgM)
Performs alive supervision, deadline supervision, and logical program flow monitoring.
gemini-3.8-flash-low· 2026-10-13 · 독일어 원문