DEENESPTFRRUARHIKOZHNL

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

Карта тем

SwCluC

47
<Resource Entry Group><Resource Entry Group>#2SwCluC_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_Init2SwCluC_BManif_ConCtrlTypeSwCluC_BManif_GlobalResourceIdTypeSwCluC_BManif_HandleIndexTypeSwCluC_BManif_HeaderTypeSwCluC_BManif_MachineIdTypeSwCluC_BManif_ResourceGuardValueTypeSwCluC_BManif_ResourcePropertiesTypeSwCluC_BManif_ResourceTypeSwCluC_BManif_SwClusterIdTypeSwCluC_BManif_TableIndexTypeSwCluC_BManif_VoidFncPtrType

Подробный вид

Выберите элемент в оглавлении.

Arti

Arti_GetVersionInfo функция

Returns the version information of this module.

void Arti_GetVersionInfo(Std_VersionInfoType* VersionInfoPtr);
Arti_Init функция

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);
BswM_ComM_CurrentMode функция

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);
BswM_Deinit функция

Deinitializes the BSW Mode Manager.

void BswM_Deinit (void);
BswM_EcuM_CurrentState функция

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);
BswM_FrSM_CurrentState функция

Function called by Fr SM to indicate its current state.

void BswM_FrSM_CurrentState (NetworkHandleType Network, FrSM_BswM_StateType CurrentState);
BswM_GetVersionInfo функция

Returns the version information of this module.

void BswM_GetVersionInfo (Std_VersionInfoType* VersionInfo);
BswM_Init функция

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);
BswM_LinTp_RequestMode функция

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);
BswM_MainFunction функция

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);
BswM_RequestMode функция

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 функция

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);
EcuM_AL_DriverInitOne функция

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

void EcuM_AL_DriverInitOne (void);
EcuM_AL_DriverInitZero функция

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);
EcuM_AL_DriverRestart функция

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

void EcuM_AL_DriverRestart (void);
EcuM_AL_Reset функция

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);
EcuM_AL_SwitchOff функция

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);
EcuM_CheckRamHash функция

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);
EcuM_CheckValidation функция

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);
EcuM_CheckWakeup функция

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);
EcuM_ClearWakeupEvent функция

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);
EcuM_EndCheckWakeup функция

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);
EcuM_ErrorHook функция

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);
EcuM_GenerateRamHash функция

see EcuM_CheckRamHash

void EcuM_GenerateRamHash (void);
EcuM_GetBootTarget функция

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 функция

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 функция

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 функция

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

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

Gets validated wakeup events.

EcuM_WakeupSourceType EcuM_GetValidatedWakeupEvents (void);
EcuM_GetVersionInfo функция

Returns the version information of this module.

void EcuM_GetVersionInfo (Std_VersionInfoType* versioninfo);
EcuM_GetWakeupTime функция

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);
EcuM_GoDownHaltPoll функция

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);
EcuM_Init функция

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

void EcuM_Init (void);
EcuM_LoopDetection функция

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

void EcuM_LoopDetection (void);
EcuM_MainFunction функция

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);
EcuM_OnGoOffOne функция

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

void EcuM_OnGoOffOne (void);
EcuM_OnGoOffTwo функция

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

void EcuM_OnGoOffTwo (void);
EcuM_ReleasePOST_RUN функция

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);
EcuM_ReleaseRUN функция

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);
EcuM_RequestPOST_RUN функция

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);
EcuM_RequestRUN функция

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 функция

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 функция

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 функция

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 функция

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

Std_ReturnType EcuM_SetRelWakeupAlarm (EcuM_UserType user, EcuM_TimeType time);
EcuM_SetState функция

Function called by BswM to notify about State Switch.

void EcuM_SetState (EcuM_StateType state);
EcuM_SetWakeupEvent функция

Sets the wakeup event.

void EcuM_SetWakeupEvent (EcuM_WakeupSourceType sources);
EcuM_Shutdown функция

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

void EcuM_Shutdown (void);
EcuM_SleepActivity функция

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);
EcuM_StartCheckWakeup функция

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);
EcuM_StartupTwo функция

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);
EcuM_StopWakeupSources функция

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.

EcuM_Mode тип

–

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

Result of the Run Request Protocol sent to BswM

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

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

ECU State Manager states.

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

Unique value for each user.

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

The type describes the possible states of a wakeup source.

HTMSS

HTMSS_GetVersionInfo функция

-

void HTMSS_GetVersionInfo(Std_VersionInfoType* versioninfo);
HTMSS_Init функция

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);
HTMSS_StartTest функция

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

<Resource Entry Group> функция

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_Init1 функция

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 функция

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

WdgM_CheckpointReached функция

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);
WdgM_DeInit функция

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);
WdgM_GetGlobalStatus функция

Returns the global supervision status of the Watchdog Manager.

Std_ReturnType WdgM_GetGlobalStatus (WdgM_GlobalStatusType* Status);
WdgM_GetLocalStatus функция

Returns the supervision status of an individual Supervised Entity.

Std_ReturnType WdgM_GetLocalStatus (WdgM_SupervisedEntityIdType SEID, WdgM_LocalStatusType* Status);
WdgM_GetMode функция

Returns the current mode of the Watchdog Manager.

Std_ReturnType WdgM_GetMode (WdgM_ModeType* Mode);
WdgM_GetVersionInfo функция

Returns the version information of this module.

void WdgM_GetVersionInfo (Std_VersionInfoType* VersionInfo);
WdgM_Init функция

Initializes the Watchdog Manager.

void WdgM_Init (const WdgM_ConfigType* ConfigPtr);
WdgM_MainFunction функция

Performs the processing of the cyclic Watchdog Manager jobs.

void WdgM_MainFunction (void);
WdgM_PerformReset функция

Instructs the Watchdog Manager to cause a watchdog reset.

void WdgM_PerformReset (void);
WdgM_SetMode функция

Sets the current mode of Watchdog Manager.

Std_ReturnType WdgM_SetMode (WdgM_ModeType Mode);
globalmode тип

-

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.

WdgM_Mode тип

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.

Руководство по кластеруСОЗДАНО ИИ

Координирует жизненные циклы электронных блоков управления (ECU), арбитрирует режимы работы и обеспечивает функциональный контроль с помощью сторожевого таймера.
СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 8ad3210909f6 Происхождение Открытые вопросы (1)
Причинный якорь: R20-11 Действует с R20-11 Заново синтезировано для этой версии спецификации.
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Координирует жизненные циклы электронных блоков управления (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) и потока управления (Control Flow) и триггерит аппаратную часть через Watchdog Driver (Wdg) [SWS_Wdg_00155].

SystemServicesArch SWC Application Layer (SW-Cs / CDDs) RTE Runtime Environment (RTE) SWC->RTE EcuM ECU State Manager (EcuM) RTE->EcuM RUN / POST_RUN Request WdgM Watchdog Manager (WdgM) RTE->WdgM Checkpoint Reached BswM BSW Mode Manager (BswM) BswM->EcuM State Setting EcuM_SetState BswM->WdgM Mode Change WdgM_SetMode EcuM->BswM Arbitrated State BswM_EcuM_RequestedState OS Operating System & SchM (Os / SchM) EcuM->OS StartOS / SchM_Init Wdg Watchdog Driver (Wdg MCAL) WdgM->Wdg Trigger Condition Wdg_SetTriggerCondition HW Hardware / Peripherals (MCU / Watchdog Timer) Wdg->HW Hardware Servicing / Reset

Контекстная диаграмма: архитектура и взаимодействие 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].

ECU Mode Handling SequenzSW-CRTEEcuMBswMUse Case: Modusanforderung durch Software-KomponenteRte_Call_RequestRUN()EcuM_RequestRUN(User)Arbitrierung aller aktiven BenutzeranforderungenBswM_EcuM_RequestedState(ECUM_STATE_APP_RUN)Use Case: Оценка правил и переключение режимаАнализ BswMRules и ActionListsEcuM_SetState(ECUM_STATE_APP_RUN)Rte_Switch_currentMode(RUN)Подтверждение режима для RunnablesBswM_EcuM_CurrentState(ECUM_STATE_APP_RUN)

Диаграмма последовательности: путь взаимодействия при обработке режимов ECU между SW-C, EcuM, BswM и RTE. Источники: 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 над уровнями абстракции и драйверов, в то время как Watchdog Driver (Wdg) в составе Microcontroller Abstraction Layer (MCAL) обслуживает аппаратные регистры сторожевого таймера [SWS_Wdg_00106]. При этом EcuM в гибком варианте реализации (EcuM Flex) выступает в роли связующего звена с аппаратным обеспечением для ранних последовательностей начальной загрузки и поздних последовательностей отключения до и после запуска операционной системы соответственно. Он больше не имеет собственного сложного конечного автомата для режимов приложения, а делегирует арбитраж режимов модулю BswM SWS_ECUStateManager с. 103. Внешние диагностические стандарты, такие как UDS (ISO 14229), и протоколы сетевого управления связываются непосредственно с вычислением правил модуля BswM через определенные интерфейсы BSW (такие как сервис 0x28 CommunicationControl через Dcm) [SWS_BswM_00048].

SystemServicesArch SWC Application Layer (SW-Cs / CDDs) RTE Runtime Environment (RTE) SWC->RTE EcuM ECU State Manager (EcuM) RTE->EcuM RUN / POST_RUN Request WdgM Watchdog Manager (WdgM) RTE->WdgM Checkpoint Reached BswM BSW Mode Manager (BswM) BswM->EcuM State Setting EcuM_SetState BswM->WdgM Mode Change WdgM_SetMode EcuM->BswM Arbitrated State BswM_EcuM_RequestedState OS Operating System & SchM (Os / SchM) EcuM->OS StartOS / SchM_Init Wdg Watchdog Driver (Wdg MCAL) WdgM->Wdg Trigger Condition Wdg_SetTriggerCondition HW Hardware / Peripherals (MCU / Watchdog Timer) Wdg->HW Hardware Servicing / Reset

Контекстная диаграмма: архитектура и взаимодействие System Services с BSW, RTE и аппаратным обеспечением. Источники: SWS_ECUStateManager с. 34, AUTOSAR_EXP_ModeManagementGuide с. 61.

2. Взаимодействие и пути интеракции между модулями

Взаимодействие внутри кластера характеризуется четко разграниченными связями управления и оповещения. В рамках ECU Mode Handling модуль EcuM принимает запросы на такие состояния, как RUN или POST_RUN, от программных компонентов (SW-C) и передает агрегированный результат арбитража через [SWS_BswM_91004] модулю BswM ModeManagementGuide с. 34. Поскольку EcuM не принимает собственного решения о переходе, BswM вычисляет сконфигурированные логические правила и синхронно предписывает целевое состояние через EcuM_SetState модулю [SWS_EcuM_04116]. Затем EcuM транслирует это состояние через RTE в приложение и подтверждает текущий статус выполнения модулю BswM через BswM_EcuM_CurrentState [SWS_BswM_91003].

Параллельный путь взаимодействия соединяет BswM, WdgM и Wdg. Программные компоненты и модули BSW сообщают о достижении определенных контрольных точек модулю WdgM, который определяет на их основе локальный и глобальный статус мониторинга SWS_WatchdogManager с. 51. Изменения состояния локального мониторинга WdgM предоставляет через выделенные порты режимов [SWS_WdgM_00148]. В зависимости от вышестоящего состояния системы BswM переключает режим работы Watchdog Manager через WdgM_SetMode [SWS_WdgM_00154]. После этого WdgM настраивает Watchdog Driver (Wdg) через Watchdog Interface (WdgIf) и управляет аппаратным триггированием через Wdg_SetTriggerCondition [SWS_Wdg_00155].

ECU Mode Handling SequenzSW-CRTEEcuMBswMUse Case: Modusanforderung durch Software-KomponenteRte_Call_RequestRUN()EcuM_RequestRUN(User)Arbitrierung aller aktiven BenutzeranforderungenBswM_EcuM_RequestedState(ECUM_STATE_APP_RUN)Use Case: Оценка правил и переключение режимаАнализ BswMRules и ActionListsEcuM_SetState(ECUM_STATE_APP_RUN)Rte_Switch_currentMode(RUN)Подтверждение режима для RunnablesBswM_EcuM_CurrentState(ECUM_STATE_APP_RUN)

Диаграмма последовательности: путь взаимодействия при обработке режимов ECU между SW-C, EcuM, BswM и RTE. Источники: SWS_ECUStateManager с. 103, ModeManagementGuide с. 34.

3. Синхронизация, реентерабельность и контексты задач

Выполнение System Services детерминированно распределяется по периодическим уровням задач, асинхронным функциям обратного вызова и контекстам прерываний. Периодическую основную нагрузку управления режимами несет BswM_MainFunction, которая вызывается в контексте задачи OS планировщиком BSW Scheduler (SchM) и обрабатывает все правила, требующие отложенного вычисления [SWS_BswM_00053]. При возникновении событий с немедленным вычислением правил они обрабатываются непосредственно синхронно в контексте вызывающей индикации BSW или API SW-C ModemanagementGuide с. 31.

В многоядерных системах стандартизация требует строгого распределения ресурсов. BswM_Init спроектирован условно реентерабельным, чтобы обеспечить возможность раздельного инстанцирования для каждого раздела или ядра процессора [SWS_BswM_00002]. Во время фаз сна и удержания EcuM резервирует собственные ресурсы OS ядра (RES_AUTOSAR_ECUM_<core#>), чтобы гарантировать синхронизацию между ведущими и ведомыми ядрами (Master и Slave) [SWS_EcuM_03010]. Инициализация драйверов через EcuM_AL_DriverInitZero и EcuM_AL_DriverInitOne вызывается отдельно на каждом ядре и инициализирует исключительно локальные для ядра модули MCAL [SWS_EcuM_04145]. Очистка событий пробуждения через EcuM_ClearWakeupEvent явно является непрерываемой и может выполняться как из контекста задач, так и из контекстов прерываний [SWS_EcuM_02807].

4. Типичные жизненные циклы и режимы работы

Жизненный цикл электронного блока управления нормативно подразделяется на фазы STARTUP, UP, SHUTDOWN и SLEEP [SWS_EcuM_91005]. Фаза STARTUP начинается до запуска операционной системы в последовательности StartPreOS с вызова EcuM_Init, анализа причины сброса и загрузки конфигурации Post-Build через EcuM_DeterminePbConfiguration AUTOSAR_SWS_ECUStateManager с. 38. После передачи управления операционной системе через StartOS модуль EcuM в StartPostOS инициализирует 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 с помощью BswM_EcuM_CurrentWakeup [SWS_BswM_00131]. Валидация пробуждения защищает от переходных помех на шине и отслеживает временное окно с помощью конфигурируемых таймеров валидации [SWS_EcuM_04004]. Если жизненный цикл завершается в фазе SHUTDOWN, OffPreOS деактивирует BswM и SchM перед тем, как OffPostOS сбросит ECU или отключит питание через интеграционные коллауты, такие как EcuM_AL_Reset или EcuM_AL_SwitchOff AUTOSAR_SWS_ECUStateManager с. 49.

WakeupSourceStates Init NONE ECUM_WKSTATUS_NONE entry / BswM_EcuM_CurrentWakeup(NONE) Init->NONE Power On PENDING ECUM_WKSTATUS_PENDING entry / BswM_EcuM_CurrentWakeup(PENDING) entry / EcuM_StartWakeupSources() NONE->PENDING EcuM_SetWakeupEvent [Validierung erforderlich] VALIDATED ECUM_WKSTATUS_VALIDATED entry / BswM_EcuM_CurrentWakeup(VALIDATED) entry / ComM_EcuM_WakeUpIndication() NONE->VALIDATED EcuM_SetWakeupEvent [Без валидации] PENDING->VALIDATED EcuM_ValidateWakeupEvent EXPIRED ECUM_WKSTATUS_EXPIRED entry / BswM_EcuM_CurrentWakeup(EXPIRED) entry / EcuM_StopWakeupSources() PENDING->EXPIRED Validierungs-Timeout abgelaufen VALIDATED->NONE EcuM_ClearWakeupEvent EXPIRED->NONE EcuM_ClearWakeupEvent

Диаграмма состояний: конечный автомат источников пробуждения модуля EcuM с уведомлением BswM. Источники: 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 (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 также проверяет целостность энергозависимой памяти с помощью EcuM_CheckRamHash, чтобы перехватить некорректные перезапуски при повреждении RAM [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 ID 5 2 APIs (2 Funktionen, 0 Typen) #include "Arti.h"

BSW Mode Manager (BswM)

Arbitrates mode requests and executes action lists to control system state transitions.

BSW ID 42 35 APIs (32 Funktionen, 3 Typen) #include "BswM.h"

ECU State Manager (EcuM)

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

BSW ID 10 65 APIs (52 Funktionen, 13 Typen) #include "EcuM.h"

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 ID 17 6 APIs (6 Funktionen, 0 Typen) #include "HTMSS.h"

BSW Scheduler Module (SchM)

AUTOSAR Classic System Services-Modul BSW Scheduler Module (SchM, Spezifikation: AUTOSAR_SWS_BSW_Scheduler.pdf).

BSW ID 130 Keine C-API · 0 Records #include "SchM.h"

Software Cluster Connection (SwCluC)

AUTOSAR Classic System Services-Modul Software Cluster Connection (SwCluC, Spezifikation: AUTOSAR_CP_SWS_SoftwareClusterConnection.pdf, AUTOSAR_SWS_SoftwareClusterConnection.pdf).

BSW ID 16 36 APIs (36 Funktionen, 0 Typen) #include "SwCluC.h"

Watchdog Manager (WdgM)

Performs alive supervision, deadline supervision, and logical program flow monitoring.

BSW ID 13 19 APIs (11 Funktionen, 8 Typen) #include "WdgM.h"