DEENESPTFRRUARHIKOZHNL

ECU State Manager (EcuM)

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

Руководство по модулюСОЗДАНО ИИ

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

Управляет запуском, выключением, фазами сна и источниками пробуждения блока управления во взаимодействии с BswM.

ECU State Manager управляет жизненным циклом блока управления Classic. Он инициализирует базовое программное обеспечение до старта OS, переводит ECU в целевые состояния выключения SLEEP, RESET или OFF и управляет источниками пробуждения, включая их валидацию [SWS_EcuM_04136]. Аппаратно-зависимые шаги выполняет Integration Code через callout-функции. Запросы RUN и POST_RUN от пользователей арбитрируются EcuM, однако решения о переходах состояний принимает BswM и возвращает их через EcuM_SetState [SWS_EcuM_04116]. Важнейшим граничным условием является то, что в фазе SLEEP не должно быть потеряно ни одно событие пробуждения.

ECU State Manager (EcuM) в Classic Platform отвечает за запуск, выключение и фазы сна блока управления. EcuM_Init выполняет последовательность StartPreOS с блоками инициализации Init 0 и 1. При этом EcuM выбирает и проверяет конфигурацию Post-Build и, наконец, вызывает StartOS. После этого EcuM_StartupTwo запускает SchM и BswM [SWS_EcuM_02684] [SWS_EcuM_02906] [SWS_EcuM_02932]. Аппаратно-зависимые шаги предоставляются кодом интеграции (Integration Code) в виде callout-функций, например EcuM_AL_DriverInitZero [SWS_EcuM_02905].

phasen start Power On / Reset STARTUP STARTUP (StartPreOS, StartPostOS) start->STARTUP UP UP (RUN / POST_RUN, optional) STARTUP->UP EcuM_StartupTwo, BswM берет управление SHUTDOWN SHUTDOWN (OffPreOS, OffPostOS) UP->SHUTDOWN Целевое состояние RESET или OFF SLEEP SLEEP (GoSleep, Halt или Poll) UP->SLEEP Ziel SLEEP, EcuM_GoDownHaltPoll OFF OFF SHUTDOWN->OFF EcuM_AL_SwitchOff RESET RESET SHUTDOWN->RESET EcuM_AL_Reset SLEEP->STARTUP Hardware-Reset / Power-Cycle SLEEP->UP Weckereignis: WakeupRestart RESET->STARTUP Neustart

Диаграмма состояний: ECU проходит STARTUP, UP, SHUTDOWN и SLEEP. Из SLEEP он возвращается в UP через WakeupRestart. Источники: RS ModeManagement с. 15, [SWS_EcuM_91005], [SWS_EcuM_02963]

EcuM не принимает решений о переходах состояний самостоятельно. Он собирает запросы RUN и POST_RUN от сконфигурированных пользователей и сообщает результат модулю BswM. Его переходы состояний он принимает через EcuM_SetState и передает их в RTE [SWS_EcuM_04144] [SWS_EcuM_04117] [SWS_EcuM_04116] SWS EcuM с. 103. EcuM_SelectShutdownTarget сохраняет целевое состояние SLEEP, RESET или OFF только на будущее [SWS_EcuM_02585]. При выключении OffPreOS деинициализирует BswM и SchM, проверяет события пробуждения и завершает работу OS. Затем хук завершения работы вызывает EcuM_Shutdown, который завершается с EcuM_AL_Reset или EcuM_AL_SwitchOff [SWS_EcuM_03021] [SWS_EcuM_04074] [SWS_EcuM_04075].

Фаза SLEEP начинается с EcuM_GoDownHaltPoll. Сначала GoSleep активирует источники пробуждения спящего режима. Затем следует либо Halt с проверкой хэша RAM, либо Poll с циклом по EcuM_SleepActivity и EcuM_CheckWakeup. Завершает процедуру WakeupRestart с EcuM_AL_DriverRestart [SWS_EcuM_91002] [SWS_EcuM_02389] [SWS_EcuM_02863] [SWS_EcuM_03020] [SWS_EcuM_02963]. В этой фазе ни одно событие пробуждения не должно быть потеряно [SWS_EcuM_02188].

Источники пробуждения представляют собой отдельные биты в EcuM_WakeupSourceType и имеют одно из состояний NONE, PENDING, VALIDATED или EXPIRED [SWS_EcuM_04040] [SWS_EcuM_04091]. Драйверы сообщают о событиях с помощью EcuM_SetWakeupEvent. Если настроена валидация, EcuM запускает таймаут. Только вызов EcuM_ValidateWakeupEvent до его истечения приводит к состоянию VALIDATED; если настроена привязка к каналу, об этом также информируется ComM. В противном случае источник переходит в состояние EXPIRED [SWS_EcuM_02709] [SWS_EcuM_02645] [SWS_EcuM_04082].

validierung a Treiber erkennt Weckereignis: EcuM_SetWakeupEvent(sources) b Источник относится к выбранному режиму сна? a->b x Ereignis ignorieren b->x нет c Validierung konfiguriert? (EcuMValidationTimeout) b->c да e Bits in Pending-Variable setzen, quellenspezifischen Timeout starten c->e да h Timeout stoppen, Validated-Bits setzen, BswM_EcuM_CurrentWakeup(VALIDATED), ComM_EcuM_WakeUpIndication / PNCWakeUpIndication (falls Kanal/PNC konfiguriert) c->h nein: impliziter EcuM_ValidateWakeupEvent f EcuM_MainFunction: EcuM_CheckValidation(wakeupSource) e->f g EcuM_ValidateWakeupEvent eingetroffen? f->g g->h да i Timeout abgelaufen? g->i нет i->f нет j Expired-Bit setzen, BswM_EcuM_CurrentWakeup(EXPIRED), EcuM_StopWakeupSources() i->j да

Диаграмма деятельности: событие пробуждения валидируется немедленно или остается в состоянии PENDING до поступления подтверждения либо истечения таймаута. Источники: SWS EcuM с. 63, [SWS_EcuM_02566], [SWS_EcuM_04082]

В случае ошибки EcuM вызывает callout-функцию EcuM_ErrorHook, если конфигурация несогласованна или проверка RAM завершилась сбоем [SWS_EcuM_04033] [SWS_EcuM_91003]. Об ошибках разработки, таких как многократные запросы или неизвестные источники пробуждения, он сообщает в DET [SWS_EcuM_03024] [SWS_EcuM_02867].

Роль и границы системы ECU State Manager

ECU State Manager (EcuM) в Classic Platform задает рамки жизненного цикла блока управления. Он инициализирует базовое программное обеспечение вплоть до старта операционной системы. Затем он контролируемо переводит ECU в одно из целевых состояний выключения SLEEP, RESET или OFF [SWS_EcuM_04136]. Его состояния определяет EcuM_StateType: STARTUP, RUN, POST_RUN, SHUTDOWN и SLEEP [SWS_EcuM_91005]. Компонентам SW-C он сообщает их через Mode-Declaration-Group EcuM_Mode, исходным режимом которой является STARTUP [SWS_EcuM_04107] [SWS_EcuM_04132].

phasen start Power On / Reset STARTUP STARTUP (StartPreOS, StartPostOS) start->STARTUP UP UP (RUN / POST_RUN, optional) STARTUP->UP EcuM_StartupTwo, BswM берет управление SHUTDOWN SHUTDOWN (OffPreOS, OffPostOS) UP->SHUTDOWN Целевое состояние RESET или OFF SLEEP SLEEP (GoSleep, Halt или Poll) UP->SLEEP Ziel SLEEP, EcuM_GoDownHaltPoll OFF OFF SHUTDOWN->OFF EcuM_AL_SwitchOff RESET RESET SHUTDOWN->RESET EcuM_AL_Reset SLEEP->STARTUP Hardware-Reset / Power-Cycle SLEEP->UP Weckereignis: WakeupRestart RESET->STARTUP Neustart

Диаграмма состояний: ECU проходит STARTUP, UP, SHUTDOWN и SLEEP. Из SLEEP он возвращается в UP через WakeupRestart, а после аппаратного сброса или цикла питания перезапускается в STARTUP. Источники: RS ModeManagement с. 15, [SWS_EcuM_91005], [SWS_EcuM_02963], [SWS_EcuM_04001]

Решения о переходах состояний принимает не сам EcuM. Он не имеет собственного конечного автомата, лишь арбитрирует запросы и оставляет переходы за BSW Mode Manager (BswM) SWS EcuM с. 103. Аппаратно-зависимые и проектно-специфичные шаги он выносит в callout-функции кода интеграции, доступные через EcuM_Externals.h. Примерами служат EcuM_AL_DriverInitZero и EcuM_AL_SwitchOff [SWS_EcuM_02905] [SWS_EcuM_02920]. Интерфейсы соседних модулей перечислены в таблицах импортируемых функций, например BswM_EcuM_CurrentWakeup, Can_Init и Det_ReportError [SWS_EcuM_02858] [SWS_EcuM_02859].

kontext EcuM EcuM SWC SW-C (через порты RTE) EcuM->SWC currentMode (EcuM_Mode) BswM BswM EcuM->BswM BswM_Init / BswM_Deinit, BswM_EcuM_CurrentWakeup, RequestedState, CurrentState IC Integration Code (Callouts in EcuM_Externals.h) EcuM->IC EcuM_AL_DriverInit*, EcuM_AL_DriverRestart, EcuM_AL_Reset, EcuM_AL_SwitchOff, EcuM_*WakeupSources Os Os EcuM->Os StartOS, ShutdownOS, GetResource Mcu Mcu EcuM->Mcu Mcu_GetResetReason, Mcu_SetMode SchM SchM EcuM->SchM SchM_Init / Start / Deinit ComM ComM EcuM->ComM ComM_EcuM_WakeUpIndication, ComM_EcuM_PNCWakeUpIndication Det Det EcuM->Det Det_ReportError SWC->EcuM RequestRUN / ReleaseRUN, SelectShutdownTarget, AlarmClock, BootTarget BswM->EcuM EcuM_SetState, EcuM_SelectShutdownTarget, EcuM_GoDownHaltPoll Os->EcuM EcuM_Shutdown (Shutdown-Hook) Drv Драйверы с источниками пробуждения (например, CanTrcv, Icu, Gpt) Drv->EcuM EcuM_SetWakeupEvent, EcuM_ValidateWakeupEvent

Контекстная диаграмма: EcuM находится между SW-C, BswM, Integration Code, OS, драйверами MCAL и ComM. Решения о переходах принимает BswM, аппаратные действия выполняет Integration Code. Источники: SWS EcuM с. 34, [SWS_EcuM_02858], [SWS_EcuM_04135]

Запуск: StartPreOS, StartPostOS и конфигурационные данные

Перед EcuM_Init EcuM предполагает лишь минимальную инициализацию MCU: стек настроен, а переменные C инициализированы SWS EcuM с. 39. EcuM_Init выполняет последовательность StartPreOS и не возвращает управление, поскольку вызывает StartOS [SWS_EcuM_02811] [SWS_EcuM_02684]. При этом инициализируются все модули, необходимые для запуска OS [SWS_EcuM_02603].

Init Block 0 (EcuM_AL_DriverInitZero) подготавливает загрузку данных Post-Build. Поэтому ему разрешено использовать только те модули, которые сконфигурированы на этапе Pre-Compile или Link-Time [SWS_EcuM_02905]. Затем EcuM_DeterminePbConfiguration возвращает указатель на EcuM_ConfigType. Эта структура ссылается на конфигурации всех остальных модулей BSW [SWS_EcuM_02906] [SWS_EcuM_02801]. Она содержит идентификатор варианта и хэш. EcuM проверяет этот хэш на соответствие ECUM_CONFIGCONSISTENCY_HASH, причем для всех модулей, конфигурируемых на этапе Post-Build, до инициализации первого из них [SWS_EcuM_02794] [SWS_EcuM_02798] [SWS_EcuM_02796].

Init Block 1 (EcuM_AL_DriverInitOne) инициализирует драйверы после Power-on-Reset, включая MCU [SWS_EcuM_02907] SWS EcuM с. 146. Порядок в обоих блоках определяют EcuMDriverInitListZero и EcuMDriverInitListOne. Каждая функция инициализации получает свои параметры из соответствующего контейнера EcuMModuleService [SWS_EcuM_02559] [SWS_EcuM_02730]. Причину сброса от драйвера Mcu модуль EcuM преобразует в источник пробуждения и запоминает ее. Если причину определить невозможно, он устанавливает ECUM_WKSOURCE_RESET [SWS_EcuM_02623] [SWS_EcuM_02601]. Если установлен EcuMResetLoopDetection, EcuM при каждом запуске вызывает callout-функцию EcuM_LoopDetection [SWS_EcuM_04137].

Запуск: StartPreOS и StartPostOSBootloaderEcuMIntegration CodeMcuOsSchMBswMUse Case: StartPreOS (EcuM_Init)EcuM_Init()EcuM_AL_DriverInitZero()EcuM_DeterminePbConfiguration()const EcuM_ConfigType*Проверить согласованность конфигурационных данныхoptKonfigurationsdaten inkonsistentEcuM_ErrorHook(ECUM_E_CONFIGURATION_DATA_INCONSISTENT)EcuM_AL_DriverInitOne()Mcu_GetResetReason()Сопоставить причину сброса с источником пробужденияStartOS(ECUM_DEFAULT_APP_MODE)Use Case: StartPostOS (EcuM_StartupTwo)EcuM_StartupTwo()(из задачи после StartOS)SchM_Init / SchM_Start / SchM_StartTimingBswM_Init()

Диаграмма последовательности: EcuM_Init проходит Init Block 0, выбор и проверку конфигурации, Init Block 1 и обработку сброса до StartOS. Затем EcuM_StartupTwo запускает SchM и BswM. Источники: SWS EcuM с. 38, SWS EcuM с. 78, [SWS_EcuM_02684], [SWS_EcuM_02932]

После старта OS задача, запущенная непосредственно в результате StartOS, вызывает EcuM_StartupTwo [SWS_EcuM_02806]. Эта функция выполняет StartPostOS: она инициализирует и запускает SchM и вызывает BswM_Init [SWS_EcuM_02932] SWS EcuM с. 42. Дальнейшую инициализацию берет на себя BswM через сгенерированные функции EcuM_AL_DriverInitBswM_<x> [SWS_EcuM_04114].

На многоядерных ECU на каждом ядре выполняется экземпляр EcuM, и Master-EcuM запускает остальные ядра. Init Block 0 и 1 выполняются на каждом ядре, но инициализируют там только его модули MCAL. SchM, OS и все локальные для ядер BswM запускаются на каждом ядре [SWS_EcuM_04145] [SWS_EcuM_04093] [SWS_EcuM_04014] SWS EcuM с. 71.

RUN и POST_RUN: запросы пользователей и арбитраж с BswM

Если активен EcuMModeHandling, пользователи могут запрашивать и снова освобождать RUN и POST_RUN [SWS_EcuM_04115] [SWS_EcuM_04130]. Для этого служат EcuM_RequestRUN, EcuM_ReleaseRUN, EcuM_RequestPOST_RUN и EcuM_ReleasePOST_RUN. Все четыре ожидают сконфигурированный идентификатор пользователя типа EcuM_UserType [SWS_EcuM_04124] [SWS_EcuM_04127] [SWS_EcuM_04128] [SWS_EcuM_04129]. EcuM отслеживает запросы по каждому пользователю, и пользователь не может выполнять их вложенно. Запросы RUN и POST_RUN он ведет в раздельных переменных [SWS_EcuM_04126] [SWS_EcuM_04125] SWS EcuM с. 116. Компоненты SW-C получают доступ к этим службам через порт StateRequest_{UserName} [SWS_EcuM_04135].

О первом запросе RUN или POST_RUN EcuM сообщает модулю BswM с помощью BswM_EcuM_RequestedState(ECUM_STATE_APP_RUN, ECUM_RUNSTATUS_REQUESTED). О последнем освобождении RUN или POST_RUN он сообщает с соответствующим состоянием и ECUM_RUNSTATUS_RELEASED [SWS_EcuM_04144] [SWS_EcuM_04117] [SWS_EcuM_04119]. BswM вычисляет свои правила и устанавливает новое состояние с помощью EcuM_SetState. В ответ на это EcuM отображает соответствующий режим для RTE и после получения от нее ответа сообщает BswM_EcuM_CurrentState [SWS_EcuM_04122] [SWS_EcuM_04116] [SWS_EcuM_04143]. В Mode-Management-Guide приведены подходящие правила BswM, например переход в POST_RUN, как только RUN освобожден Mode-Management-Guide с. 34.

Арбитраж RUN/POST_RUN между EcuM и BswMSW-C (EcuM-Nutzer)RTEEcuMBswMUse Case: AnforderungEcuM_RequestRUN(user)через порт StateRequest_{UserName}E_OKпервый запрос RUN или POST_RUNBswM_EcuM_RequestedState(ECUM_STATE_APP_RUN, ECUM_RUNSTATUS_REQUESTED)Оценка правил определяет переходEcuM_SetState(state)Rte_Switch_currentMode_currentMode(mode)Обратная связь через порт AcknowledgementBswM_EcuM_CurrentState(state)Use Case: ВыпускатьEcuM_ReleaseRUN(user)letzte RUN-Anforderung freigegebenBswM_EcuM_RequestedState(ECUM_STATE_APP_RUN, ECUM_RUNSTATUS_RELEASED)EcuM_SetState(state)например, переход в POST_RUN

Диаграмма последовательности: EcuM арбитрирует запросы пользователей и сообщает результат BswM. BswM возвращает состояние через EcuM_SetState, а EcuM передает его в RTE. Источники: [SWS_EcuM_04144], [SWS_EcuM_04117], [SWS_EcuM_04116], [SWS_EcuM_04143].

Целевые состояния выключения и отключение через OffPreOS и OffPostOS

EcuM_SelectShutdownTarget сохраняет цель и режим только для последующей фазы SHUTDOWN или SLEEP и сам по себе ничего не инициирует [SWS_EcuM_02822] [SWS_EcuM_00624] [SWS_EcuM_02585]. Параметр режима при цели SLEEP выбирает сконфигурированный спящий режим, а при цели RESET — режим сброса. При OFF он игнорируется [SWS_EcuM_02979] [SWS_EcuM_02185]. К режимам сброса относятся как минимум Mcu_PerformReset, WdgM_PerformReset и переключение контакта ввода-вывода (I/O-Pin) [SWS_EcuM_04005] [SWS_EcuM_04044]. Причина выключения фиксируется с помощью EcuM_SelectShutdownCause [SWS_EcuM_04007] [SWS_EcuM_04050]. EcuM_GetLastShutdownTarget возвращает целевое состояние, из которого в последний раз было выполнено пробуждение или запуск. Это значение остается неизменным до следующего выключения [SWS_EcuM_02156].

Фаза SHUTDOWN завершается переходом либо в OFF, либо в RESET [SWS_EcuM_03022]. Момент установки цели, как правило, определяет BswM SWS EcuM с. 66. В OffPreOS деинициализируются BswM и SchM и проверяются события пробуждения. Если имеются ожидающие события, в качестве цели устанавливается RESET. Последним действием является ShutdownOS [SWS_EcuM_03021] [SWS_EcuM_02952] SWS EcuM с. 49.

Затем хук завершения работы вызывает EcuM_Shutdown, который не возвращает управление. После EcuM_OnGoOffTwo при цели RESET следует EcuM_AL_Reset, а при цели OFF — EcuM_AL_SwitchOff [SWS_EcuM_02953] [SWS_EcuM_02917] [SWS_EcuM_04074] [SWS_EcuM_04075]. Интерпретация: при RESET и OFF модуль BswM, по-видимому, также инициирует фазу через EcuM_GoDownHaltPoll, поскольку описание его возвращаемого значения различается в зависимости от цели выключения [SWS_EcuM_91002]. Вопрос Q-29bca5a7c6e82c98 (открытый)

Отключение через OffPreOS и OffPostOSBswMEcuMSchMOsIntegration CodeEcuM_SelectShutdownTarget(target, mode)E_OKEcuM_GoDownHaltPoll(UserID)Интерпретация: триггер также при RESET/OFFUse Case: OffPreOSBswM_Deinit()SchM_Deinit()Проверить события пробуждения (pending или подтвержденные,в зависимости от EcuMIgnoreWakeupEvValOffPreOS)optWeckereignisse anstehendShutdown-Ziel RESET setzen(EcuMDefaultResetModeRef)ShutdownOS()Use Case: OffPostOSEcuM_Shutdown()из shutdown-hookEcuM_OnGoOffTwo()altShutdown-Ziel RESETEcuM_AL_Reset(EcuM_ResetType)Shutdown-Ziel OFFEcuM_AL_SwitchOff()

Диаграмма последовательности: OffPreOS деинициализирует BswM и SchM, проверяет события пробуждения и завершает работу OS. Затем OffPostOS в зависимости от целевого состояния выключения разветвляется на сброс или выключение. Источники: SWS EcuM с. 49, SWS EcuM с. 49, [SWS_EcuM_02953], [SWS_EcuM_91002]

Фаза SLEEP: GoSleep, Halt или Poll и WakeupRestart

Если в качестве цели выбран SLEEP, EcuM_GoDownHaltPoll инициирует фазу SLEEP. Вызывающая сторона должна предварительно установить соответствующую цель [SWS_EcuM_91002] SWS EcuM с. 54. В GoSleep EcuM с помощью EcuM_EnableWakeupSources активирует все источники пробуждения из EcuMWakeupSourceMask целевого режима сна. На многоядерных ECU он дополнительно занимает специфичный для ядра ресурс RES_AUTOSAR_ECUM. В отличие от выключения, OS остается активной [SWS_EcuM_02389] [SWS_EcuM_03010] [SWS_EcuM_02951]. Ни одно событие пробуждения не должно быть потеряно. Если уже во время GoSleep произошло событие, Halt и Poll пропускаются [SWS_EcuM_02188].

Спящие режимы, останавливающие микроконтроллер, проходят через последовательность Halt. Перед ней EcuM вызывает EcuM_GenerateRamHash, после нее — EcuM_CheckRamHash [SWS_EcuM_02960] [SWS_EcuM_02863]. Спящие режимы с пониженной тактовой частотой, напротив, используют последовательность Poll. Она вызывает EcuM_SleepActivity и EcuM_CheckWakeup в блокирующем цикле до тех пор, пока событие не будет зарегистрировано как pending или валидировано [SWS_EcuM_02962] [SWS_EcuM_03020]. В R20-11 EcuM_CheckWakeup все еще является callout-функцией. Лишь начиная с R21-11 эта callout-функция называется EcuM_CheckWakeupHook [SWS_EcuM_02929] SWS EcuM с. 145.

Событие пробуждения приводит к последовательности WakeupRestart [SWS_EcuM_02963] SWS EcuM с. 56:

  1. MCU возвращается в обычный режим.
  2. EcuM_DisableWakeupSources деактивирует текущие активные источники пробуждения; все остальные остаются активированными [SWS_EcuM_02922].
  3. EcuM_AL_DriverRestart повторно инициализирует затронутые драйверы [SWS_EcuM_02923].
  4. Планировщик снова разблокируется.

Если во время сна происходит аппаратный сброс или цикл выключения/включения питания (Power-Cycle), ECU, напротив, начинает заново в STARTUP [SWS_EcuM_04001].

Фаза SLEEP: GoSleep, Halt или Poll, WakeupRestartBswMEcuMIntegration CodeOsMcuWeckquelle (Treiber)EcuM_SelectShutdownTarget(SLEEP, Schlafmodus)EcuM_GoDownHaltPoll(UserID)Use Case: GoSleepEcuM_EnableWakeupSources(EcuMWakeupSourceMask режима сна)BswM_EcuM_CurrentWakeup(sources, ECUM_WKSTATUS_NONE)GetResource(RES_AUTOSAR_ECUM_<core#>)altРежим сна останавливает µC (Halt)EcuM_GenerateRamHash()Mcu_SetMode(Schlafmodus)HALT до прерывания пробужденияEcuM_CheckRamHash()Режим сна с пониженной тактовой частотой (Poll)Mcu_SetMode(Schlafmodus)loopнет событий в состоянии pending или подтвержденныхEcuM_SleepActivity()EcuM_CheckWakeup(wakeupSource)<Module>_CheckWakeup()EcuM_SetWakeupEvent(sources)falls Weckereignis erkanntUse Case: WakeupRestartMcu_SetMode(EcuMNormalMcuModeRef)EcuM_GetPendingWakeupEvents()EcuM_DisableWakeupSources(pending)EcuM_AL_DriverRestart()ReleaseResource(RES_AUTOSAR_ECUM_<core#>)

Диаграмма последовательности: GoSleep подготавливает источники пробуждения, Halt или Poll реализуют сон, а WakeupRestart возвращает в состояние UP. Источники: SWS EcuM с. 52, SWS EcuM с. 85, SWS EcuM с. 87, SWS EcuM с. 58

Опционально EcuM ведет часы, отсчитывающие секунды с момента подключения аккумулятора [SWS_EcuM_04069]. Каждый пользователь может установить не более одного будильника пробуждения. Главный будильник всегда соответствует самому раннему пользовательскому будильнику [SWS_EcuM_04070] [SWS_EcuM_04072]. EcuM_SetAbsWakeupAlarm отклоняет более позднее время с ECUM_E_EARLIER_ACTIVE, а уже прошедшее — с ECUM_E_PAST [SWS_EcuM_04059] [SWS_EcuM_04060]. При выходе из SLEEP модуль EcuM сбрасывает все будильники [SWS_EcuM_04009].

Источники пробуждения: состояния, валидация и опрос

EcuM управляет до 32 источников пробуждения в виде битовой маски типа EcuM_WakeupSourceType. Пять битов предопределены, среди них ECUM_WKSOURCE_POWER и ECUM_WKSOURCE_RESET. Дополнительные источники получают через EcuMWakeupSourceId биты с 5 по 31 [SWS_EcuM_04040] [SWS_EcuM_02165] [SWS_EcuM_02166] SWS EcuM с. 63. Каждый источник находится в одном из состояний NONE, PENDING, VALIDATED или EXPIRED [SWS_EcuM_04091] [SWS_EcuM_04041]. О каждой смене состояния EcuM сообщает в BswM в виде Mode-Request [SWS_EcuM_04003].

weckzustaende start Power On NONE ECUM_WKSTATUS_NONE entry: BswM_EcuM_CurrentWakeup(sources, NONE) start->NONE PENDING ECUM_WKSTATUS_PENDING entry: BswM_EcuM_CurrentWakeup(sources, PENDING) entry: EcuM_StartWakeupSources() do: Validierungssequenz NONE->PENDING EcuM_SetWakeupEvent [с валидацией] VALIDATED ECUM_WKSTATUS_VALIDATED entry: BswM_EcuM_CurrentWakeup(sources, VALIDATED) entry: ComM_EcuM_WakeUpIndication() NONE->VALIDATED EcuM_SetWakeupEvent [без валидации] PENDING->NONE EcuM_ClearWakeupEvent PENDING->VALIDATED EcuM_ValidateWakeupEvent EXPIRED ECUM_WKSTATUS_EXPIRED entry: BswM_EcuM_CurrentWakeup(sources, EXPIRED) entry: EcuM_StopWakeupSources() PENDING->EXPIRED Validierungs-Timeout (EcuM_MainFunction) VALIDATED->NONE EcuM_ClearWakeupEvent EXPIRED->NONE EcuM_ClearWakeupEvent

Диаграмма состояний: источник пробуждения переходит из NONE через PENDING в VALIDATED или EXPIRED. О каждой смене состояния сообщается в BswM, и EcuM_ClearWakeupEvent сбрасывает источник обратно в NONE. Источники: SWS EcuM с. 60, [SWS_EcuM_04091], [SWS_EcuM_02683]

Драйвер сообщает о распознанном событии ровно один раз с помощью EcuM_SetWakeupEvent SWS EcuM с. 71. Функцию разрешено вызывать также из контекста прерывания и из контекста без OS. Она устанавливает переданные биты через операцию «ИЛИ» в переменную Pending. Источники, не относящиеся к выбранному режиму сна, она игнорирует [SWS_EcuM_02826] [SWS_EcuM_02171] [SWS_EcuM_01117] [SWS_EcuM_04138].

Если событие необходимо валидировать, EcuM запускает специфичный для источника таймаут в соответствии с EcuMValidationTimeout. При повторном сообщении о том же источнике таймаут заново не запускается [SWS_EcuM_02975] [SWS_EcuM_02565] [SWS_EcuM_02709] [SWS_EcuM_02712]. Если для источника валидация не сконфигурирована, EcuM_SetWakeupEvent действует одновременно как EcuM_ValidateWakeupEvent. Пять предопределенных источников никогда не валидируются [SWS_EcuM_02566] [SWS_EcuM_02625].

Сама валидация выполняется в EcuM_MainFunction, которая для этого вызывает коллаут EcuM_CheckValidation [SWS_EcuM_02539] [SWS_EcuM_02925] SWS EcuM с. 64. EcuM_ValidateWakeupEvent оказывает следующее действие [SWS_EcuM_02710] [SWS_EcuM_04078] [SWS_EcuM_04079] [SWS_EcuM_02645] [SWS_EcuM_04140]:

  • Она останавливает таймаут и устанавливает биты в переменной Validated.
  • Она сообщает в BswM ECUM_WKSTATUS_VALIDATED.
  • Если сконфигурирован канал или PNC, она вызывает ComM_EcuM_WakeUpIndication или ComM_EcuM_PNCWakeUpIndication соответственно.

Если таймаут истекает, главная функция устанавливает бит Expired и сообщает ECUM_WKSTATUS_EXPIRED [SWS_EcuM_04081] [SWS_EcuM_04082]. В состоянии RUN валидация действует только для коммуникационных каналов [SWS_EcuM_02790] [SWS_EcuM_02791].

validierung a Treiber erkennt Weckereignis: EcuM_SetWakeupEvent(sources) b Источник относится к выбранному режиму сна? a->b x Ereignis ignorieren b->x нет c Validierung konfiguriert? (EcuMValidationTimeout) b->c да e Bits in Pending-Variable setzen, quellenspezifischen Timeout starten c->e да h Timeout stoppen, Validated-Bits setzen, BswM_EcuM_CurrentWakeup(VALIDATED), ComM_EcuM_WakeUpIndication / PNCWakeUpIndication (falls Kanal/PNC konfiguriert) c->h nein: impliziter EcuM_ValidateWakeupEvent f EcuM_MainFunction: EcuM_CheckValidation(wakeupSource) e->f g EcuM_ValidateWakeupEvent eingetroffen? f->g g->h да i Timeout abgelaufen? g->i нет i->f нет j Expired-Bit setzen, BswM_EcuM_CurrentWakeup(EXPIRED), EcuM_StopWakeupSources() i->j да

Диаграмма деятельности: для источников без необходимости валидации событие валидируется немедленно. Для остальных оно остается PENDING, пока не поступит EcuM_ValidateWakeupEvent или пока не истечет таймаут и источник не станет EXPIRED. Источники: SWS EcuM с. 63, SWS EcuM с. 78, [SWS_EcuM_02566], [SWS_EcuM_04082]

Текущее состояние опрашивают EcuM_GetPendingWakeupEvents, EcuM_GetValidatedWakeupEvents и EcuM_GetExpiredWakeupEvents. EcuM_ClearWakeupEvent очищает переданные биты из всех трех переменных [SWS_EcuM_01156] [SWS_EcuM_02533] [SWS_EcuM_04076] [SWS_EcuM_02683].

Некоторые источники пробуждения имеют встроенный источник питания, поэтому пробуждение от них действует как Power-on-Reset. Для них EcuM_StartCheckWakeup запускает CheckWakeupTimer, предотвращающий преждевременное отключение. EcuM_SetWakeupEvent или EcuM_EndCheckWakeup завершает работу таймера [SWS_EcuM_04096] [SWS_EcuM_04098] [SWS_EcuM_02927] SWS EcuM с. 70.

Поведение при ошибке

О неустранимых ошибках EcuM сообщает через коллаут EcuM_ErrorHook с соответствующим кодом ошибки [SWS_EcuM_04033] [SWS_EcuM_02904]. В R20-11 для этого существует два кода [SWS_EcuM_91003] [SWS_EcuM_02987]:

  • ECUM_E_CONFIGURATION_DATA_INCONSISTENT при несогласованных данных Post-Build.
  • ECUM_E_RAM_CHECK_FAILED, если проверка RAM после пробуждения завершилась неудачей.

Если вызов OS завершается ошибкой, EcuM сохраняет запрошенное состояние и также вызывает ErrorHook [SWS_EcuM_04139]. Собственный код ECUM_E_OS_CALL_FAILED и указание на то, что хук не возвращает управление, содержит только более поздняя редакция спецификации SWS EcuM с. 102. Ошибки во время инициализации EcuM игнорирует, например возвращаемые значения Init-функций [SWS_EcuM_02980].

При включенном обнаружении ошибок разработки все функции проверяют свои параметры и условия выполнения. Для этого доступны ECUM_E_UNINIT, ECUM_E_SERVICE_DISABLED, ECUM_E_PARAM_POINTER и ECUM_E_INVALID_PAR [SWS_EcuM_03009]. О других случаях EcuM сообщает в DET:

  • Многократные запросы одного и того же пользователя как ECUM_E_MULTIPLE_RUN_REQUESTS [SWS_EcuM_03024] [SWS_EcuM_03025].
  • Освобождения без соответствующего запроса как ECUM_E_MISMATCHED_RUN_RELEASE [SWS_EcuM_03023] [SWS_EcuM_03026].
  • Неизвестные источники пробуждения как ECUM_E_UNKNOWN_WAKEUP_SOURCE; внутренняя переменная при этом остается неизменной [SWS_EcuM_02867] [SWS_EcuM_02868].
  • Недопустимые состояния в EcuM_SetState как ECUM_E_STATE_PAR_OUT_OF_RANGE [SWS_EcuM_04123].

Если во время выключения возникает событие пробуждения, EcuM завершает Shutdown и немедленно перезапускается [SWS_EcuM_02756]. Если ECU в EcuM_AL_SwitchOff не может обесточить себя самостоятельно, сброс является адекватной реакцией [SWS_EcuM_02920] SWS EcuM с. 141.

Дальнейшие подробные доказательства

Данное руководство было составлено с использованием ИИ на основе выдержек из спецификации к модулю EcuM (Classic Platform, R20-11). Определяющими являются указанные по ссылкам требования; утверждения, отмеченные как интерпретация, не имеют нормативного подтверждения.

ECU State Manager (EcuM)

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

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

функция EcuM_GoDownHaltPoll [SWS_EcuM_91002] 📄 PDF

Std_ReturnType EcuM_GoDownHaltPoll (EcuM_UserType UserID);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 71091e858c55 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная и реентерабельная функция EcuM_GoDownHaltPoll предписывает модулю ECU State Manager перейти в режим Sleep, Reset или в состояние OFF в зависимости от ранее выбранной цели отключения [SWS_EcuM_91002]. Она доступна через заголовочный файл EcuM.h и имеет Service-ID 0x2c [SWS_EcuM_91002].

Параметры и право вызова

В качестве единственного входного параметра передается UserID типа EcuM_UserType. Он идентифицирует вызывающего пользователя. Вызов строго регламентирован: выполнять данную функцию разрешено исключительно предварительно сконфигурированным пользователям [SWS_EcuM_91002].

Возвращаемые значения и ход выполнения

Поведение возврата существенным образом зависит от типа установленной цели отключения [SWS_EcuM_91002]:

  • E_NOT_OK: запрос не был принят [SWS_EcuM_91002].
  • E_OK: если целью является SLEEP, функция успешно возвращается с этим статусом после выхода из режима сна [SWS_EcuM_91002].
  • Отсутствие возврата: если в качестве цели отключения было выбрано RESET или OFF, вызов функции больше не возвращается к вызывающему объекту [SWS_EcuM_91002].

Ограничения и обработка ошибок

Хотя функция формально объявлена как реентерабельная, ее выполнение по назначению требует предварительного определения валидной цели отключения [SWS_EcuM_91002]. Специфические коды ошибок DET или DEM в спецификации интерфейса не приведены; сбой или отклонение запроса непосредственно отображаются через возвращаемое значение E_NOT_OK [SWS_EcuM_91002].

Это указание по использованию сгенерировано автоматически на основе спецификации AUTOSAR.

Руководство разработчика реализации в подготовке (сложность I1)

функция EcuM_Init [SWS_EcuM_02811] 📄 PDF

void EcuM_Init (void);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 0b36a0aa946f Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная сервисная функция EcuM_Init инициализирует ECU State Manager и запускает штатный процесс запуска блока управления ([SWS_EcuM_02811]). Она объявляется через заголовочный файл EcuM.h с Service-ID 0x01, не принимает параметров и не возвращает значения ([SWS_EcuM_02811]). Формально классифицированная как реэнтрантная, EcuM_Init после вызова никогда не возвращает управление вызывающему компоненту, поскольку передает выполнение операционной системе путем вызова StartOS ([SWS_EcuM_02811]).

В рамках своего выполнения функция отрабатывает определенную последовательность StartPreOS и ее активности в строго заданном порядке ([SWS_EcuM_02411], [SWS_EcuM_02684]). Существенной составной частью этой фазы является проверка согласованности конфигурации: модуль внутри EcuM_Init проверяет, идентично ли соответствующее поле структуры значению ECUM_CONFIGCONSISTENCY_HASH ([SWS_EcuM_02798]).

Кроме того, EcuM_Init управляет инициализацией драйверов в многоядерных системах ([SWS_EcuM_04145]). Функция вызывает коллауты EcuM_AL_DriverInitZero и EcuM_AL_DriverInitOne на каждом отдельном ядре ([SWS_EcuM_04145]). Для реализаций коллаутов действует требование гарантировать, чтобы на текущем активном ядре инициализировались исключительно те модули MCAL, которые фактически выполняются на этом ядре ([SWS_EcuM_04145]).

Это указание по использованию было автоматически сгенерировано на основе спецификации AUTOSAR Classic R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция EcuM_StartupTwo [SWS_EcuM_02838] 📄 PDF

void EcuM_StartupTwo (void);

This function implements the STARTUP II state.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 537ce9e5d889 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная и нереентерабельная функция EcuM_StartupTwo реализует состояние STARTUP II модуля ECU State Manager [SWS_EcuM_02838]. Интерфейс объявляется через заголовочный файл EcuM.h и имеет Service ID 0x1a [SWS_EcuM_02838]. В соответствии с сигнатурой функции void EcuM_StartupTwo(void) вызов не принимает ни входных, ни входных/выходных, ни выходных параметров и не возвращает значения вызывающему компоненту [SWS_EcuM_02838].

При активации модуля ECU Manager функцией EcuM_StartupTwo он выполняет действия последовательности StartPostOS [SWS_EcuM_02932].

Для интеграции существуют важные требования относительно контекста вызова и параллелизма: функция обязательно должна вызываться из задачи, запускаемой непосредственно в результате StartOS [SWS_EcuM_02806]. Это требует, чтобы вызов EcuM_StartupTwo выполнялся либо из задачи с автостартом (Autostart Task), либо из задачи, запускаемой явно [SWS_EcuM_02806]. Поскольку функция специфицирована как нереентерабельная, одновременный или многократный вызов недопустим [SWS_EcuM_02838].

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция EcuM_Shutdown [SWS_EcuM_02812] 📄 PDF

void EcuM_Shutdown (void);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 06f5a6c81474 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная сервисная функция EcuM_Shutdown (Service ID 0x02) предоставляется через заголовочный файл EcuM.h и берет на себя управление выполнением для проведения действий фазы «GO OFF II» [SWS_EcuM_02812]. Она служит для окончательного завершения процесса отключения [SWS_EcuM_02953].

Контекст вызова и семантика

Обычно функция вызывается из Shutdown Hook [SWS_EcuM_02812]. Этот хук в соответствии с требованиями обязан явно вызывать EcuM_Shutdown для завершения процесса отключения [SWS_EcuM_02953].

  • Сигнатура: void EcuM_Shutdown(void) с Service ID 0x02 [SWS_EcuM_02812].
  • Параметры: отсутствуют входные, выходные или входные/выходные параметры [SWS_EcuM_02812].
  • Возвращаемое значение: интерфейс не возвращает значения [SWS_EcuM_02812].
  • Синхронность: вызов выполняется синхронно [SWS_EcuM_02812].

Параллелизм и поток управления

В спецификации EcuM_Shutdown объявлена как реентерабельная [SWS_EcuM_02812]. Однако для выполнения программы действует строгое требование: EcuM_Shutdown не должна возвращать управление вызывающему компоненту [SWS_EcuM_02953]. После отработки функция окончательно отключает ECU или, в качестве альтернативы, инициирует сброс [SWS_EcuM_02953].

Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция EcuM_SetState [SWS_EcuM_04122] 📄 PDF

void EcuM_SetState (EcuM_StateType state);

Function called by BswM to notify about State Switch.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 6ccfd6ea170b Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и контекст вызова

Синхронная функция EcuM_SetState служит для того, чтобы BswM мог сообщить EcuM об изменении состояния [SWS_EcuM_04122]. В качестве входного параметра передается state типа EcuM_StateType, который задает состояние, определенное BswM [SWS_EcuM_04122]. Функция не имеет возвращаемого значения [SWS_EcuM_04122].

Принцип работы и взаимодействие

При вызове функция устанавливает внутреннее состояние EcuM в значение параметра state [SWS_EcuM_04123]. Если BswM таким образом устанавливает состояние EcuM, EcuM сообщает соответствующий режим в RTE [SWS_EcuM_04116].

Обработка ошибок

Если переданное значение параметра state недействительно, EcuM_SetState не изменяет состояние EcuM [SWS_EcuM_04123]. Если активирована функция Development Error Reporting, в этом случае ошибки функция дополнительно сообщает об ошибке ECUM_E_STATE_PAR_OUT_OF_RANGE в модуль DET [SWS_EcuM_04123].

Параллелизм и интерфейс

Выполнение является синхронным и реентерабельным [SWS_EcuM_04122]. Служба объявляется через заголовочный файл EcuM.h [SWS_EcuM_04122].

Это указание по использованию было автоматически сгенерировано на основе спецификации AUTOSAR Classic R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция EcuM_RequestRUN [SWS_EcuM_04124] 📄 PDF

Std_ReturnType EcuM_RequestRUN (EcuM_UserType user);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: edb1d4cba6be Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Синхронная и реентерабельная функция EcuM_RequestRUN служит для запроса состояния RUN у ECU State Manager [SWS_EcuM_04124]. В качестве параметра через user типа EcuM_UserType передается идентификатор запрашивающей сущности; авторизованными являются исключительно пользователи, о которых диспетчеру состояний стало известно еще во время конфигурации [SWS_EcuM_04124]. Функция возвращает E_OK, если EcuM принял запрос, в противном случае — E_NOT_OK [SWS_EcuM_04124]. Служба объявлена через заголовочный файл EcuM.h [SWS_EcuM_04124].

Обработка ошибок и ограничения

Запросы не должны быть вложенными: отдельный пользователь в один момент времени может удерживать максимум один активный запрос RUN [SWS_EcuM_04125]. Если EcuM_RequestRUN обнаруживает повторные или двойные вызовы одним и тем же пользователем, при активированном обнаружении ошибок разработки код ошибки ECUM_E_MULTIPLE_RUN_REQUESTS сообщается в DET [SWS_EcuM_03024], [SWS_EcuM_04125].

Взаимодействие

Каждый успешно установленный с помощью EcuM_RequestRUN запрос состояния должен быть снова освобожден после завершения активности. Для этого предусмотрена комплементарная, также синхронная и реентерабельная служба EcuM_ReleaseRUN, которой передается тот же ID пользователя [SWS_EcuM_04127].

Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция EcuM_ReleaseRUN [SWS_EcuM_04127] 📄 PDF

Std_ReturnType EcuM_ReleaseRUN (EcuM_UserType user);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: f2acc7b3a714 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Синхронная функция EcuM_ReleaseRUN (идентификатор службы 0x04) служит для освобождения запроса состояния RUN, ранее зарегистрированного через EcuM_RequestRUN [SWS_EcuM_04127]. Интерфейс предоставляется через заголовочный файл EcuM.h и предназначен в первую очередь для реализации портов AUTOSAR [SWS_EcuM_04127]. В качестве входного параметра функция ожидает идентификатор пользователя user типа EcuM_UserType, который однозначно идентифицирует освобождающую сущность внутри модуля [SWS_EcuM_04127].

Возвращаемое значение типа Std_ReturnType сигнализирует с помощью E_OK о том, что запрос на освобождение был успешно принят модулем [SWS_EcuM_04127]. Если освобождение не удалось обработать, служба возвращает значение ошибки E_NOT_OK [SWS_EcuM_04127].

Обработка ошибок и параллелизм

Специфические коды ошибок, ошибки разработки (DET) или производственные ошибки (DEM) в спецификации не приводятся; отклонение запроса выражается исключительно возвратом E_NOT_OK [SWS_EcuM_04127]. Следует предположить (интерпретация:), что возврат E_NOT_OK, вероятно, происходит тогда, когда для указанного идентификатора пользователя нет активного запроса или было передано недопустимое значение параметра. Вопрос Q-cbe9031cffe1be81 (открытый)

Функция объявлена как реэнтрантная и, следовательно, может вызываться в параллельных контекстах выполнения [SWS_EcuM_04127]. В качестве функционального условия последовательности вызов обязательно предполагает, что соответствующий пользователь ранее запросил состояние через EcuM_RequestRUN [SWS_EcuM_04127].

Взаимодействие

Модуль EcuM предоставляет эту службу, чтобы через определённые порты завершить удержание состояния RUN [SWS_EcuM_04127]. Для конфигурации RTE и взаимодействия с локальным поведением во время выполнения RTE спецификация определяет внутреннее поведение EcuStateManager с несколькими параллельно исполняемыми Runnable Entities [SWS_EcuM_03018].

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR.

Руководство разработчика реализации в подготовке (сложность I1)

функция EcuM_RequestPOST_RUN [SWS_EcuM_04128] 📄 PDF

Std_ReturnType EcuM_RequestPOST_RUN (EcuM_UserType user);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 8517014c50a6 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Синхронная функция EcuM_RequestPOST_RUN служит для запроса состояния POST RUN у ECU State Manager ([SWS_EcuM_04128]). Вызывающий объект идентифицирует себя через параметр user, при этом каждая запрашивающая сущность должна быть сообщена диспетчеру состояний еще во время конфигурации ([SWS_EcuM_04128]). Служба объявлена в заголовочном файле EcuM.h, предназначена для реализации портов AUTOSAR и подтверждает успешное принятие с помощью E_OK или отклонение с помощью E_NOT_OK ([SWS_EcuM_04128]).

Обработка ошибок

Если обнаружение ошибок разработки активировано, повторный вызов тем же пользователем приводит к тому, что EcuM_RequestPOST_RUN сообщает об ошибке ECUM_E_MULTIPLE_RUN_REQUESTS в DET ([SWS_EcuM_03025]). Интерпретация: в случае таких многократных запросов или при недействительных идентификаторах пользователей служба, вероятно, отвечает E_NOT_OK ([SWS_EcuM_04128]). Вопрос Q-b5bbd7d5b53e76ba (открытый)

Параллелизм и взаимодействие

Функция спроектирована как реентерабельная ([SWS_EcuM_04128]). В модуле запросы для RUN и POST RUN должны отслеживаться строго независимо друг от друга через две отдельные переменные ([SWS_EcuM_04128]). Каждый зарегистрированный через эту службу запрос удерживает состояние POST RUN активным до тех пор, пока он не будет явно отозван комплементарным вызовом EcuM_ReleasePOST_RUN ([SWS_EcuM_04129]).

Данный текст был сгенерирован автоматически. Все техническое содержание базируется на спецификации AUTOSAR.

Руководство разработчика реализации в подготовке (сложность I2)

функция EcuM_ReleasePOST_RUN [SWS_EcuM_04129] 📄 PDF

Std_ReturnType EcuM_ReleasePOST_RUN (EcuM_UserType user);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 5beb0fd73cda Происхождение Открытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и семантика

Синхронная и реэнтрантная функция EcuM_ReleasePOST_RUN ([SWS_EcuM_04129]) служит для освобождения запроса POST-RUN, ранее установленного с помощью EcuM_RequestPOST_RUN. Через входной параметр user типа EcuM_UserType передаётся идентификатор сущности, которая снова освобождает статус POST-RUN. Интерфейс доступен через заголовочный файл EcuM.h и в первую очередь рассчитан на реализацию портов AUTOSAR ([SWS_EcuM_04129]).

Возвращаемые значения и обработка ошибок

Функция возвращает статус Std_ReturnType ([SWS_EcuM_04129]):

  • E_OK: запрос на освобождение был успешно принят ECU State Manager.
  • E_NOT_OK: запрос на освобождение был отклонён. Интерпретация: отклонение с E_NOT_OK, вероятно, имеет место, если для указанного пользователя не было зарегистрировано активного запроса или был передан недействительный идентификатор пользователя. Вопрос Q-67bd8594612defca (открытый)

Параллелизм и взаимодействие

Служба специфицирована как реэнтрантная ([SWS_EcuM_04129]), так что одновременные вызовы несколькими сущностями допустимы. Функция является составной частью внутреннего поведения модуля EcuM ([SWS_EcuM_03018]). Вызов логически предполагает, что сущность ранее запросила фазу POST RUN ([SWS_EcuM_04129]). Интерпретация: как правило, вызов, вероятно, осуществляется из программных компонентов через порты RTE, как только их действия по выбегу перед отключением завершены. Вопрос Q-81f71656d4debb4a (открытый)

Это указание по использованию было автоматически сгенерировано на основе версии спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция EcuM_SelectShutdownTarget [SWS_EcuM_02822] 📄 PDF

Std_ReturnType EcuM_SelectShutdownTarget (EcuM_ShutdownTargetType shutdownTarget, EcuM_ShutdownModeType shutdownMode);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: a39197138cfb Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная сервисная функция EcuM_SelectShutdownTarget служит для выбора цели завершения работы (shutdown target) для электронного блока управления и предоставляется через заголовочный файл EcuM.h, а также как часть портового интерфейса модуля ECU Manager [SWS_EcuM_02822]. Вызов устанавливает внутреннюю цель завершения работы в значение переданного параметра shutdownTarget [SWS_EcuM_00624].

Функция ожидает два входных параметра [SWS_EcuM_02822]:

  • shutdownTarget: определяет выбранную цель завершения работы [SWS_EcuM_02822].
  • shutdownMode: содержит идентификатор режима сна (если целью является ECUM_SHUTDOWN_TARGET_SLEEP) или механизма сброса (если целью является ECUM_SHUTDOWN_TARGET_RESET) в соответствии с конфигурацией [SWS_EcuM_02822].

Вызов не инициирует немедленных действий по настройке или выполнению (Setup), а лишь сохраняет значения для последующего использования в фазе SHUTDOWN или SLEEP [SWS_EcuM_02585].

Что касается параллелизма, функция специфицирована как реэнтрантная [SWS_EcuM_02822]. В RTE-Internal-Behavior модуля ECU State Manager соответствующая Runnable Entity SelectShutdownTarget объявлена с canbeInvokedConcurrently = TRUE [SWS_EcuM_03018], благодаря чему параллельные вызовы допустимы.

Возвращаемое значение типа Std_ReturnType сигнализирует с помощью E_OK о том, что новая цель завершения работы была успешно установлена, а с помощью E_NOT_OK — о том, что принятие завершилось неудачей [SWS_EcuM_02822]. Конкретных причин ошибок для E_NOT_OK или сообщений DET спецификация в данном месте не приводит; вероятно, к отклонению приводят недопустимые или несконфигурированные комбинации цели и режима. Вопрос Q-e916f3a6ac0bf47e (открытый)

Этот текст был сгенерирован ИИ и основан на спецификациях релиза R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция EcuM_SelectShutdownCause [SWS_EcuM_04050] 📄 PDF

Std_ReturnType EcuM_SelectShutdownCause (EcuM_ShutdownCauseType target);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 518672a867f6 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная функция EcuM_SelectShutdownCause служит для выбора причины отключения ECU и доступна через заголовочный файл EcuM.h [SWS_EcuM_04050].

Использование и семантика:

  • Параметры: входной параметр target типа EcuM_ShutdownCauseType передает выбранную причину выключения [SWS_EcuM_04050].
  • Возвращаемое значение: возвращаемое значение типа Std_ReturnType сигнализирует с помощью E_OK о том, что новая причина была успешно установлена, а с помощью E_NOT_OK — о том, что установка не удалась [SWS_EcuM_04050].
  • Выполнение: служба работает синхронно с Service-ID 0x1b и специфицирована как реентерабельная [SWS_EcuM_04050].

Конкурентность и взаимодействие:

Функция является частью интерфейса портов модуля ECU Manager [SWS_EcuM_04050]. Для конфигурации локальной RTE во внутреннем поведении EcuStateManager определена исполняемая сущность (Runnable Entity) SelectShutdownCause с символом EcuM_SelectShutdownCause, при этом присвоено свойство canbeInvokedConcurrently = TRUE [SWS_EcuM_03018].

Обработка ошибок:

В объеме спецификации специфические сообщения DET или DEM не указаны; состояния ошибок при установке причины отображаются исключительно через возвращаемое значение E_NOT_OK [SWS_EcuM_04050].

Данное указание по использованию было создано автоматически и базируется на требованиях спецификации AUTOSAR Classic релиза R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция EcuM_GetShutdownCause [SWS_EcuM_04051] 📄 PDF

Std_ReturnType EcuM_GetShutdownCause (EcuM_ShutdownCauseType* shutdownCause);

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

функция EcuM_ClearWakeupEvent [SWS_EcuM_02828] 📄 PDF

void EcuM_ClearWakeupEvent (EcuM_WakeupSourceType sources);

Clears wakeup events.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 8efe1e7a60e8 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная сервисная функция EcuM_ClearWakeupEvent (Service-ID 0x16) служит для сброса событий пробуждения и доступна через заголовочный файл EcuM.h [SWS_EcuM_02828]. В качестве параметра она принимает битовую маску sources типа EcuM_WakeupSourceType и не имеет возвращаемого значения [SWS_EcuM_02828].

При вызове все ожидающие события, установленные в виде бита в sources, удаляются из трех внутренних переменных модуля [SWS_EcuM_02683]:

  • из внутренней переменной для ожидающих событий пробуждения (pending wakeup events),
  • из внутренней переменной для подтвержденных событий пробуждения (validated events), а также
  • из внутренней переменной для истекших событий пробуждения (expired events) [SWS_EcuM_02683].

В отношении контекста вызова EcuM_ClearWakeupEvent может гибко вызываться из контекста прерывания, из регулярного контекста OS, а также из контекста без OS [SWS_EcuM_02807]. В то же время функция обязательно специфицирована как нереэнтрантная (Non-Reentrant) и непрерываемая (Non-Interruptible) [SWS_EcuM_02828]. Интерпретация: поскольку функция допустима в различных контекстах, но является непрерываемой, интегратор или вызывающий компонент организационно должен обеспечить отсутствие одновременных или прерывающих друг друга вызовов. Вопрос Q-71a4b1b218505a1c (открытый)

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.

функция EcuM_AbortWakeupAlarm [SWS_EcuM_04061] 📄 PDF

Std_ReturnType EcuM_AbortWakeupAlarm (EcuM_UserType user);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: a619899b3b6a Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная функция EcuM_AbortWakeupAlarm служит для отмены будильника пробуждения, ранее установленного пользователем [SWS_EcuM_04061]. Интерфейс доступен через заголовочный файл EcuM.h и является составной частью портового интерфейса модуля ECU-менеджера [SWS_EcuM_04061].

Параметры и возвращаемые значения

  • user (In): идентификатор пользователя типа EcuM_UserType, который хочет отменить будильник пробуждения [SWS_EcuM_04061]. Входные/выходные или чисто выходные параметры отсутствуют [SWS_EcuM_04061].
  • E_OK: сервис успешно выполнен, и будильник отменён [SWS_EcuM_04061].
  • ECUM_E_NOT_ACTIVE: активный будильник, принадлежащий переданному пользователю, не найден [SWS_EcuM_04061].
  • E_NOT_OK: выполнение службы завершилось сбоем [SWS_EcuM_04061].

Параллелизм и взаимодействие

Функция имеет Service-ID 0x24 и специфицирована как реентерабельная [SWS_EcuM_04061]. Таким образом, вызовы для разных пользователей могут выполняться параллельно. Внутреннее поведение ECU-менеджера определяет исполняемые сущности для конфигурации локальной RTE [SWS_EcuM_03018]; как часть портового интерфейса модуля вызов обычно должен инициироваться программными компонентами через RTE. Вопрос Q-2c8f004d9f00bbd3 (открытый)

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция EcuM_GetCurrentTime [SWS_EcuM_04062] 📄 PDF

Std_ReturnType EcuM_GetCurrentTime (EcuM_TimeType* time);

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

функция EcuM_GetWakeupTime [SWS_EcuM_04063] 📄 PDF

Std_ReturnType EcuM_GetWakeupTime (EcuM_TimeType* time);

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

функция EcuM_SetClock [SWS_EcuM_04064] 📄 PDF

Std_ReturnType EcuM_SetClock (EcuM_UserType user, EcuM_TimeType time);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: a5821c5da6f5 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная и реентерабельная функция EcuM_SetClock служит согласно [SWS_EcuM_04064] для установки внутреннего времени ECU State Manager на заданное значение. Будучи частью интерфейса портов ECU Manager, функция может быть подключена и вызвана через заголовочный файл EcuM.h [SWS_EcuM_04064].

Основным назначением интерфейса является тестирование служб оповещения: оповещения, штатный ход которых занял бы несколько дней, могут быть верифицированы в тестовом режиме путем целенаправленной установки времени [SWS_EcuM_04064]. При этом передаются два входных параметра:

  • user (тип EcuM_UserType): идентификатор вызывающей стороны или пользователя, желающего установить время.
  • time (тип EcuM_TimeType): абсолютное значение времени в секундах с момента подключения аккумулятора (Battery Connect).

В качестве возвращаемого значения служба возвращает статус Std_ReturnType с E_OK при успешном выполнении или E_NOT_OK в случае ошибки [SWS_EcuM_04064]. Конкретные причины ошибок или сообщения DET на интерфейсе не специфицированы; предположительно, передача неавторизованных идентификаторов пользователей или недопустимых значений времени приводит к возврату E_NOT_OK. Вопрос Q-248768580c0309e8 (открытый)

Что касается внутреннего поведения модуля и конфигурации RTE, функция интегрируется в структуру исполняемых сущностей (Runnable Entities) EcuStateManager [SWS_EcuM_03018].

Этот текст был сгенерирован ИИ и служит для технической ориентации.

Руководство разработчика реализации в подготовке (сложность I1)

функция EcuM_SelectBootTarget [SWS_EcuM_02835] 📄 PDF

Std_ReturnType EcuM_SelectBootTarget (EcuM_BootTargetType target);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 3afaf8f6214a Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная функция EcuM_SelectBootTarget служит для выбора boot-target для блока управления, входит в состав интерфейса портов ECU Manager и доступна через заголовочный файл EcuM.h [SWS_EcuM_02835]. Требуемая цель передается через входной параметр target типа EcuM_BootTargetType [SWS_EcuM_02835].

В качестве возвращаемого значения функция E_OK сигнализирует о том, что новый boot-target принят EcuM, в противном случае — E_NOT_OK [SWS_EcuM_02835]. Реализация должна сохранять выбранную цель способом, совместимым с загрузчиком [SWS_EcuM_02247]. Текущее установленное значение можно запросить через комплементарную службу EcuM_GetBootTarget [SWS_EcuM_02836].

Функция специфицирована как реэнтрантная [SWS_EcuM_02835]; в рамках внутреннего поведения для конфигурации RTE исполняемая сущность (Runnable Entity) SelectBootTarget объявлена с canbeInvokedConcurrently = TRUE [SWS_EcuM_03018]. В качестве ограничения действует то, что данная служба предназначена исключительно для программных компонентов (SW-C), связанных с диагностикой или управлением загрузкой, и может зависеть от конкретно используемого загрузчика [SWS_EcuM_03000].

Этот текст был сгенерирован ИИ и основан на требованиях спецификации AUTOSAR.

Руководство разработчика реализации в подготовке (сложность I1)

функция EcuM_GetBootTarget [SWS_EcuM_02836] 📄 PDF

Std_ReturnType EcuM_GetBootTarget (EcuM_BootTargetType* target);

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

функция EcuM_ValidateWakeupEvent [SWS_EcuM_02829] 📄 PDF

void EcuM_ValidateWakeupEvent (EcuM_WakeupSourceType sources);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: f79b59c62af4 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

EcuM_ValidateWakeupEvent — это синхронная служба (Service-ID 0x14), которая сигнализирует модулю ECU Manager о том, что переданные в параметре sources источники пробуждения успешно валидированы ([SWS_EcuM_02829]). После пробуждения ECU State Manager ожидает этого подтверждения в последовательности валидации. При вызове функция останавливает текущий таймер таймаута валидации ([SWS_EcuM_02710]) и заносит переданные события путем побитовой операции ИЛИ маски во внутреннюю переменную для подтвержденных событий пробуждения ([SWS_EcuM_04078]).

Функция является реэнтрантной ([SWS_EcuM_02829]) и может вызываться как из контекста задачи, так и из контекста прерывания ([SWS_EcuM_02345]). Если ECU Manager находится в состоянии RUN, вызов остается бездействующим для всех источников пробуждения, если только они не являются каналами связи ([SWS_EcuM_02790]). Для источников, сопоставленных с каналом связи, служба, напротив, оказывает неограниченное действие в любой фазе ECU ([SWS_EcuM_02791]).

В общем процессе служба тесно взаимодействует с валидацией пробуждения и управлением связью:

  • Проверка валидации: ECU Manager вызывает для проверки коллаут EcuM_CheckValidation; при обнаружении действительного события пробуждения обратная связь осуществляется через EcuM_ValidateWakeupEvent ([SWS_EcuM_02925]).
  • Конфигурация: если для источника пробуждения протокол валидации не сконфигурирован (EcuMValidationTimeout), то уже EcuM_SetWakeupEvent подразумевает вызов EcuM_ValidateWakeupEvent ([SWS_EcuM_02566]).
  • Уведомление: если для источника пробуждения сконфигурировано EcuMComMChannelRef, служба вызывает ComM_EcuM_WakeUpIndication ([SWS_EcuM_02645]). При сконфигурированном EcuMComMPNCRef дополнительно для каждого указанного PNC инициируется ComM_EcuM_PNCWakeUpIndication ([SWS_EcuM_04140]).

Этот совет по использованию был сгенерирован ИИ на основе спецификации AUTOSAR Classic R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция EcuM_ErrorHook [SWS_EcuM_02904] 📄 PDF

void EcuM_ErrorHook (uint16 reason);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: a96df00e2811 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная и нереэнтрантная функция обратного вызова EcuM_ErrorHook (предоставляемая через EcuM_Externals.h) вызывается модулем ECU State Manager при возникновении серьезных ошибок, которые делают невозможной штатную дальнейшую обработку и требуют останова блока управления [SWS_EcuM_02904]. Через входной параметр reason передается конкретная причина ошибки [SWS_EcuM_02904].

К определенным причинам ошибок относятся ECUM_E_RAM_CHECK_FAILED и ECUM_E_CONFIGURATION_DATA_INCONSISTENT [SWS_EcuM_02904]. Если проверка RAM при пробуждении завершается сбоем, ECU Manager обязан инициировать EcuM_ErrorHook с причиной ECUM_E_RAM_CHECK_FAILED [SWS_EcuM_02987]. Кроме того, обработка ошибок через этот хук выполняется в случае, когда вызов функции операционной системы терпит сбой и никакая другая реакция на ошибку не специфицирована; в этом случае EcuM остается в прежнем состоянии [SWS_EcuM_04139].

Для системного интегратора при реализации действуют следующие рамочные условия:

  • Способ останова блока управления: интегратор выбирает способ, которым останавливается ECU (например, сброс, останов, перезапуск или безопасное состояние) [SWS_EcuM_02904]. Интерпретация: при радикальных мерах, таких как сброс или останов, функция, как правило, больше не должна возвращаться к штатному управлению выполнением. Вопрос Q-59c23e3a2569f670 (открытый)
  • Сообщение об ошибке в DEM: решение о передаче ошибки в DEM остается на усмотрение интегратора при условии, что гарантируется отсутствие записи модулем DEM в поврежденные блоки NVRAM [SWS_EcuM_02987].

Этот текст был создан с помощью ИИ и базируется на спецификации AUTOSAR CP R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция EcuM_AL_SetProgrammableInterrupts [SWS_EcuM_04085] 📄 PDF

void EcuM_AL_SetProgrammableInterrupts (void);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 166191cb51d3 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и условия вызова

Callout-функция EcuM_AL_SetProgrammableInterrupts вызывается модулем ECU State Manager для конфигурации и установки соответствующих прерываний на блоках управления ECU с программируемыми контроллерами прерываний [SWS_EcuM_04085]. Однако выполнение этого callout происходит только в том случае, если конфигурационный параметр EcuMSetProgrammableInterrupts установлен в значение true [SWS_EcuM_04085]. Если этот параметр не активирован, вызов не производится [SWS_EcuM_04085]. Для интеграторов и платформенных драйверов объявление интерфейса предоставляется через заголовочный файл EcuM_Externals.h [SWS_EcuM_04085].

Интерфейс имеет синтаксис void EcuM_AL_SetProgrammableInterrupts (void) и сопоставлен с Service ID 0x4A [SWS_EcuM_04085]. Вызов полностью безнараметрический: не передаются ни входные, ни входные/выходные, ни выходные параметры, и функция не возвращает значения вызывающему модулю [SWS_EcuM_04085].

Параллелизм и ограничения

Для EcuM_AL_SetProgrammableInterrupts в спецификации определено асинхронное поведение выполнения (Asynchronous) [SWS_EcuM_04085]. В отношении параллелизма функция классифицирована как нереентерабельная (Non Reentrant) [SWS_EcuM_04085]. Для интеграции это означает, что параллельные или вложенные вызовы интерфейса недопустимы, и конфигурация прерываний должна выполняться без одновременных повторных входов [SWS_EcuM_04085].

Это указание по использованию было создано автоматически на основе спецификации AUTOSAR.

функция EcuM_AL_DriverInitZero [SWS_EcuM_02905] 📄 PDF

void EcuM_AL_DriverInitZero (void);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 5df1108381d2 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Коллаут-функция EcuM_AL_DriverInitZero (Service-ID 0x31) вызывается синхронно, не имеет ни параметров, ни возвращаемого значения и является нереэнтрантной [SWS_EcuM_02905]. Она объявлена через заголовочный файл EcuM_Externals.h [SWS_EcuM_02905]. Функция служит для обеспечения ранней инициализации драйверов, а также базовых действий по запуску аппаратного обеспечения, которые строго необходимы для последующей возможности загрузки конфигурационных данных Post-Build [SWS_EcuM_02905].

Ограничения и многоядерный режим

Для реализации и выполнения действуют специфические требования и ограничения:

  • Классы конфигурации: в этот ранний момент времени разрешается использовать исключительно модули, конфигурируемые как Pre-Compile или Link-Time [SWS_EcuM_02905]. Конфигурируемые на этапе Post-Build драйверы здесь еще недоступны.
  • Контекст вызова: функция вызывается посредством EcuM_Init на каждом Core системы [SWS_EcuM_04145].
  • Инициализация для конкретного Core: реализация коллаута должна гарантировать, чтобы на текущем активном Core инициализировались только те модули MCAL, которые фактически выполняются на этом конкретном Core [SWS_EcuM_04145].

Возвращаемые значения, специфические коды ошибок или уведомления через DET либо DEM для данного коллаута не определены [SWS_EcuM_02905].

Данное указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR Release R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция EcuM_DeterminePbConfiguration [SWS_EcuM_02906] 📄 PDF

const EcuM_ConfigType* EcuM_DeterminePbConfiguration (void);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 8491e826e02d Происхождение Открытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция EcuM_DeterminePbConfiguration ([SWS_EcuM_02906]) представляет собой синхронный кол-аут ECU State Manager, который предоставляется через заголовочный файл EcuM_Externals.h и имеет Service-ID 0x32. Интерфейс не имеет входных, выходных или входных/выходных параметров ([SWS_EcuM_02906]). Ее центральная цель заключается в том, чтобы во время процесса запуска на основе условий оборудования или памяти определить, какой набор данных конфигурации Post-Build должен использоваться для дальнейшего хода запуска системы ([SWS_EcuM_02906]).

Для определения конфигурации кол-аут должен оценивать внешние или резидентные критерии, такие как состояние вывода порта или значение в NVRAM ([SWS_EcuM_02906]). Затем функция должна загрузить эти данные конфигурации в сегмент памяти, к которому могут обращаться все BSW-модули ([SWS_EcuM_02906]). В качестве возвращаемого значения она возвращает указатель типа const EcuM_ConfigType* на конфигурацию Post-Build EcuM ([SWS_EcuM_02906]). Этот указатель образует общую исходную основу для всей BSW, так как структура содержит указатели на соответствующие конфигурации Post-Build всех остальных BSW-модулей ([SWS_EcuM_02906]).

Что касается поведения при вызове, функция специфицирована как синхронная и нереентерабельная (Non Reentrant) ([SWS_EcuM_02906]). Специфические коды ошибок, особые возвращаемые значения ошибок, а также интерфейсы к DET или DEM для этого кол-аута не определены ([SWS_EcuM_02906]). Поэтому в качестве интерпретации требований можно считать, что специфичная для приложения реализация кол-аута должна самостоятельно обрабатывать ошибочные состояния, поскольку отсутствие валидного указателя конфигурации, вероятно, препятствовало бы упорядоченному запуску зависимых BSW-модулей. Вопрос Q-b9487647fb39a2e2 (открытый)

Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR CP R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция EcuM_AL_DriverInitOne [SWS_EcuM_02907] 📄 PDF

void EcuM_AL_DriverInitOne (void);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 1a4bc344c682 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и семантика

Функция EcuM_AL_DriverInitOne является коллаут-функцией менеджера состояний ECU (EcuM), которая предоставляется через заголовочный файл EcuM_Externals.h [SWS_EcuM_02907]. Ее основная задача состоит в том, чтобы в случае Power-on-Reset выполнить инициализацию драйверов, а также дальнейшие связанные с аппаратным обеспечением действия по запуску блока управления [SWS_EcuM_02907]. Поскольку речь идет о коллауте, конкретная реализация инициализации аппаратного обеспечения и драйверов, по-видимому, должна осуществляться соответствующим системным интегратором. Вопрос Q-e22baf2fa31cf075 (открытый)

Интерфейс имеет C-сигнатуру void EcuM_AL_DriverInitOne (void) и сопоставлен с Service-ID 0x33 [SWS_EcuM_02907]. Он не принимает никаких входных параметров, а также не возвращает значения вызывающему компоненту [SWS_EcuM_02907].

Параллелизм и ограничения

Для вызова и поведения во время выполнения согласно [SWS_EcuM_02907] действуют следующие граничные условия:

  • Синхронность: выполнение происходит синхронно (Synchronous), так что вызывающий компонент ожидает завершения действий по запуску.
  • Реэнтрантность: функция определена как нереэнтрантная (Non Reentrant); одновременный или прерывающий многократный вызов недопустим.
  • Контекст вызова: активация специфицирована исключительно для фазы инициализации непосредственно после Power-on-Reset.

Обработка ошибок

Поскольку EcuM_AL_DriverInitOne имеет тип возвращаемого значения void, на уровне интерфейса не существует прямой обратной связи об успехе или ошибке инициализации [SWS_EcuM_02907]. Специфические коды ошибок, сообщения DET или DEM в приведенном объеме спецификации для данного коллаута не определены.

Этот текст был создан ИИ и основан на спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция EcuM_LoopDetection [SWS_EcuM_04137] 📄 PDF

void EcuM_LoopDetection (void);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: e51873f736db Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция EcuM_LoopDetection представляет собой колбэк ECU State Manager с Service ID 0x4B, предоставляемый через заголовочный файл EcuM_Externals.h [SWS_EcuM_04137].

Использование и контекст вызова

Если параметр конфигурации EcuMResetLoopDetection установлен в true, этот колбэк синхронно вызывается при каждом запуске (Startup) [SWS_EcuM_04137]. Функция не имеет ни входных, ни входных/выходных, ни выходных параметров и не возвращает значения (сигнатура: void EcuM_LoopDetection (void)) [SWS_EcuM_04137].

Параллелизм и ограничения

Выполнение EcuM_LoopDetection специфицировано как синхронное и нереентерабельное (Non Reentrant) [SWS_EcuM_04137]. Поскольку это колбэк, конкретная реализация обнаружения циклов обычно возлагается на интегратора или пользователя для фиксации повторяющихся циклов сброса при запуске системы.

Это указание по использованию было сгенерировано автоматически на основе спецификаций AUTOSAR.

Руководство разработчика реализации в подготовке (сложность I1)

функция EcuM_OnGoOffOne [SWS_EcuM_02916] 📄 PDF

void EcuM_OnGoOffOne (void);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: ee988344d1c4 Происхождение Открытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Функция EcuM_OnGoOffOne служит для оповещения о достижении состояния системы GO OFF I и предоставления системному разработчику возможности предпринять соответствующие меры непосредственно перед переходом [SWS_EcuM_02916]. Функция выполняется синхронно, не ожидает передаваемых параметров (ни in, ни inout) и не возвращает значения (void) [SWS_EcuM_02916]. Поскольку интерфейс объявляется через заголовочный файл EcuM_Externals.h, логично предположить, что речь идет о зависящей от пользователя callout-функции, реализуемой в коде интеграции [SWS_EcuM_02916]. Вопрос Q-93de53c47a5a6142 (открытый)

Обработка ошибок

В спецификации для EcuM_OnGoOffOne не приведены ни ошибки разработки (DET), ни производственные ошибки (DEM), ни специфические возвращаемые значения ошибок [SWS_EcuM_02916]. Из этого можно сделать вывод, что вызывающий компонент не ожидает стандартизированного управления ошибками, и возможные исключительные ситуации должны автономно обрабатываться в рамках пользовательской реализации [SWS_EcuM_02916].

Параллелизм и ограничения

Для контекста вызова и поведения во время выполнения определены следующие свойства [SWS_EcuM_02916]:

  • Реентерабельность: функция специфицирована как нереентерабельная (Non Reentrant) и ни в коем случае не должна вызываться параллельно или вложенно [SWS_EcuM_02916].
  • Синхронность: семантика строго синхронная (Synchronous), поэтому вызывающий компонент ожидает полного возврата из функции [SWS_EcuM_02916].
  • Service ID: служба внутренне представлена шестнадцатеричным идентификатором 0x3C [SWS_EcuM_02916].

Из-за синхронного поведения и предстоящего перехода в состояние GO OFF I следует предположить, что блокирующих операций необходимо избегать, чтобы недопустимо не задерживать процесс отключения или перехода [SWS_EcuM_02916]. Вопрос Q-93f5e23c581f0c38 (открытый)

Это указание по использованию было сгенерировано ИИ на основе спецификации AUTOSAR CP R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция EcuM_OnGoOffTwo [SWS_EcuM_02917] 📄 PDF

void EcuM_OnGoOffTwo (void);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: e613bc195292 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Согласно спецификации, синхронная функция EcuM_OnGoOffTwo служит для того, чтобы дать системному разработчику возможность получить уведомление о непосредственном приближении состояния GO OFF II [SWS_EcuM_02917]. Вызов выполняется без параметров (без входных (In), входных/выходных (Inout) или выходных (Out) параметров) и не возвращает вызывающей стороне никакого значения [SWS_EcuM_02917].

С точки зрения контекста выполнения и параллелизма интерфейс снабжён Service-ID 0x3D и специфицирован как нереентерабельный (Non Reentrant) [SWS_EcuM_02917]. Он предоставляется через заголовочный файл EcuM_Externals.h [SWS_EcuM_02917]. Интерпретация: поскольку объявление находится в EcuM_Externals.h и служит для уведомления системного разработчика, функция, вероятно, спроектирована как синхронный callout управления электронным блоком управления, вызываемый перед переходом в состояние GO OFF II. Вопрос Q-bb0ae6e4632de827 (открытый)

В силу свойства интерфейса как нереентерабельного вызов не должен повторяться параллельно или с прерыванием [SWS_EcuM_02917]. Специфические коды ошибок, обратная связь в DET или DEM, а также отдельные механизмы обработки ошибок в объёме спецификации не определены [SWS_EcuM_02917].

Данный текст был сгенерирован ИИ на основе спецификации R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция EcuM_AL_SwitchOff [SWS_EcuM_02920] 📄 PDF

void EcuM_AL_SwitchOff (void);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 0b4004b6930f Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Callout-функция EcuM_AL_SwitchOff является частью модуля ECU State Manager (EcuM) и служит для размещения пользовательского кода отключения электропитания ECU [SWS_EcuM_02920]. Интерфейс определён как синхронный, имеет Service-ID 0x3E и предоставляется через заголовочный файл EcuM_Externals.h [SWS_EcuM_02920].

Согласно спецификации функция не принимает ни входных, ни входных/выходных, ни выходных параметров и не имеет возвращаемого значения (void) [SWS_EcuM_02920]. Если аппаратное обеспечение ECU не может самостоятельно отключить питание, спецификация предусматривает, что адекватной реакцией вместо этого может являться инициирование сброса [SWS_EcuM_02920].

Взаимодействие и параллелизм

Вызов EcuM_AL_SwitchOff обязательно выполняется модулем ECU Manager, как только выбранной целью останова становится OFF [SWS_EcuM_04075]. В отношении поведения при параллелизме callout определён как нереентерабельный (Non Reentrant) [SWS_EcuM_02920]. Интерпретация: поскольку целью функции является полное отключение электропитания или, в качестве альтернативы, сброс, данный callout, вероятно, представляет собой завершающий шаг последовательности отключения, после которого регулярное выполнение программы больше не происходит. Вопрос Q-e8a1aaa1413bbea9 (открытый)

Обработка ошибок

Для callout в спецификации не предусмотрено ни специфических кодов ошибок, ни механизмов обработки ошибок, ни сообщений в DET или DEM [SWS_EcuM_02920].

Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR CP R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция EcuM_AL_Reset [SWS_EcuM_04065] 📄 PDF

void EcuM_AL_Reset (EcuM_ResetType reset);

This callout shall take the code for resetting the ECU.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: cf7a6e2e5e21 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Callout EcuM_AL_Reset служит для размещения интеграционного кода, отвечающего за сброс ECU ([SWS_EcuM_04065]). Интерфейс объявляется через заголовочный файл EcuM_Externals.h и имеет Service-ID 0x4C ([SWS_EcuM_04065]).

Вызов функции является синхронным и определен как нереентерабельный (Non Reentrant) ([SWS_EcuM_04065]). В качестве единственного входного параметра передается reset типа EcuM_ResetType, который определяет конкретный тип выполняемого сброса ([SWS_EcuM_04065]). Функция не имеет возвращаемого значения (void) и не содержит параметров для вывода или ввода/вывода ([SWS_EcuM_04065]).

В рамках взаимодействия в фазе завершения работы (Shutdown) определено, что модуль ECU Manager обязан вызвать колбэк (callout) EcuM_AL_Reset, если целевым состоянием завершения работы является RESET ([SWS_EcuM_04074]). Для этого колбэка в спецификации не предусмотрено ни кодов ошибок, ни уведомлений для DET или DEM ([SWS_EcuM_04065]). Интерпретация: по всей видимости, колбэк выполняет низкоуровневые команды управления, непосредственно вызывающие сброс MCU. Вопрос Q-1e318404843faabd (открытый)

Это указание по использованию было сгенерировано ИИ на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция EcuM_EnableWakeupSources [SWS_EcuM_02918] 📄 PDF

void EcuM_EnableWakeupSources (EcuM_WakeupSourceType wakeupSource);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 4e41a87f2d45 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция EcuM_EnableWakeupSources представляет собой синхронный callout ECU-менеджера с Service-ID 0x3F, объявляемый через заголовочный файл EcuM_Externals.h [SWS_EcuM_02918]. Она служит для информирования системного разработчика о приближении состояния SLEEP, чтобы указанные в битовом поле wakeupSource (тип EcuM_WakeupSourceType) источники пробуждения могли быть соответствующим образом подготовлены и настроены [SWS_EcuM_02918].

Использование и взаимодействие

ECU-менеджер выполняет EcuM_EnableWakeupSources для настройки источников пробуждения для следующего спящего режима; это происходит для каждого источника пробуждения, настроенного в EcuMWakeupSourceMask для намеченного спящего режима [SWS_EcuM_02389]. Функция не имеет возвращаемого значения (void) и ожидает битовое поле wakeupSource в качестве входного параметра [SWS_EcuM_02918].

Параллелизм и ограничения

  • Реэнтерабельность: функция специфицирована как нереэнтерабельная (Non Reentrant) [SWS_EcuM_02918].
  • Синхронность: обработка выполняется синхронно [SWS_EcuM_02918].
  • Обработка ошибок: в объёме спецификации интерфейса специфические сообщения об ошибках DET или DEM не определены [SWS_EcuM_02918].

Это указание по использованию было автоматически сгенерировано на основе версии спецификации AUTOSAR R20-11.

функция EcuM_GenerateRamHash [SWS_EcuM_02919] 📄 PDF

void EcuM_GenerateRamHash (void);

see EcuM_CheckRamHash

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: ce82c127dbe0 Происхождение Открытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция EcuM_GenerateRamHash служит для генерации контрольного значения RAM в контексте ECU State Manager, при этом спецификация относительно принципа работы ссылается на EcuM_CheckRamHash [SWS_EcuM_02919]. Сгенерированное контрольное значение, предположительно, служит для последующей проверки целостности оперативной памяти в связи с состояниями сна или покоя. Вопрос Q-7f316b389e1609c0 (открытый)

Использование и интерфейс

Сервис имеет Service-ID 0x40 и сигнатуру void EcuM_GenerateRamHash(void) [SWS_EcuM_02919]. Функция не имеет ни входных, ни выходных, ни входных/выходных параметров и не возвращает значения. Выполнение происходит синхронно.

Параллелизм и ограничения

Функция специфицирована как нереентерабельная (Non Reentrant) [SWS_EcuM_02919]. Следовательно, её нельзя вызывать с прерыванием или параллельно из нескольких контекстов. Объявление предоставляется через заголовочный файл EcuM_Externals.h [SWS_EcuM_02919]. Интерпретация: судя по определению в EcuM_Externals.h, речь, вероятно, идёт о callout-функции, реализуемой пользователем, которая вызывается модулем ECU State Manager в подходящий момент последовательности состояний. Вопрос Q-2f53f1a19cee079c (открытый)

Обработка ошибок

Для EcuM_GenerateRamHash в [SWS_EcuM_02919] не определены ни специфические коды ошибок, ни сообщения DET или DEM.

Это указание по использованию было создано автоматически на основе спецификации модуля EcuM.

функция EcuM_SleepActivity [SWS_EcuM_02928] 📄 PDF

void EcuM_SleepActivity (void);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 331d24f7a327 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и контекст вызова

Функция EcuM_SleepActivity представляет собой callout модуля ECU State Manager, предоставляемый в заголовочном файле EcuM_Externals.h с Service ID 0x41 [SWS_EcuM_02928]. Вызов выполняется периодически во всех режимах сна со сниженной тактовой частотой процессора (reduced clock sleep modes) [SWS_EcuM_02928]. Функция имеет сигнатуру void EcuM_SleepActivity(void), работает синхронно и не принимает ни входных, ни выходных, ни входных/выходных параметров [SWS_EcuM_02928].

Функциональные задачи и взаимодействие

Назначением этого callout является выполнение действий во время сна: внутри EcuM_SleepActivity явно предусмотрен и разрешен циклический опрос источников пробуждения (Polling) [SWS_EcuM_02928]. Кроме того, непосредственно из callout разрешено вызывать функции уведомления о пробуждении, чтобы сигнализировать модулю ECU State Manager о выходе из состояния сна [SWS_EcuM_02928].

Параллелизм и ограничения

Интерфейс специфицирован как нереентерабельный (Non Reentrant) [SWS_EcuM_02928]. Поскольку callout не возвращает значения и параметры ошибок не определены, прямая обработка ошибок через интерфейс функции посредством кодов ошибок или таких средств оповещения, как DET или DEM, не выполняется [SWS_EcuM_02928].

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция EcuM_StartCheckWakeup [SWS_EcuM_04096] 📄 PDF

void EcuM_StartCheckWakeup (EcuM_WakeupSourceType WakeupSource);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: adada8898a5f Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и контекст вызова

Согласно [SWS_EcuM_04096], синхронный интерфейс EcuM_StartCheckWakeup вызывается прошивкой ECU для запуска таймера CheckWakeupTimer для определенного источника пробуждения. Для этого функции передается параметр WakeupSource типа EcuM_WakeupSourceType. Она не имеет возвращаемого значения (void) и предоставляется через заголовочный файл EcuM_Externals.h.

Последовательность выполнения и условия

Выполнение функции зависит от конфигурации источника пробуждения [SWS_EcuM_04096]:

  • Если для соответствующего источника пробуждения сконфигурировано EcuMCheckWakeupTimeout > 0, запускается сопутствующий CheckWakeupTimer.
  • Если действует EcuMCheckWakeupTimeout <= 0, вызов функции полностью игнорируется EcuM.

Параллелизм и обработка ошибок

Функция специфицирована как нереентерабельная (Non Reentrant) [SWS_EcuM_04096]. Следовательно, вызывающая сторона должна гарантировать, что вызовы для одного и того же или других источников пробуждения не выполняются параллельно. Специфические коды ошибок, а также уведомления в DET или DEM для этого вызова не специфицированы; вызов при неположительном таймауте согласно спецификации остается без последствий, что, предположительно, можно интерпретировать как толерантный перехват неактуальных проверок таймера [SWS_EcuM_04096]. Вопрос Q-19d98b03d3ee7504 (открытый)

Это указание по использованию было сгенерировано ИИ на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция EcuM_CheckWakeup [SWS_EcuM_02929] 📄 PDF

void EcuM_CheckWakeup (EcuM_WakeupSourceType wakeupSource);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 9c2d9feb4e41 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Callout EcuM_CheckWakeup служит для проверки и опроса источников пробуждения, а также для конфигурации PLL после события пробуждения [SWS_EcuM_02929]. Функция предоставляется через заголовочный файл EcuM_Externals.h и имеет Service-ID 0x42 [SWS_EcuM_02929].

Контекст вызова и семантика

  • Сигнатура и параметры: функция выполняется синхронно (Synchronous), не имеет возвращаемого значения и ожидает wakeupSource типа EcuM_WakeupSourceType в качестве входного параметра [SWS_EcuM_02929].
  • Вызывающие стороны: callout вызывается модулем EcuM для циклического опроса источника пробуждения. Кроме того, он обязательно должен вызываться из процедуры обработки прерывания (ISR) источника пробуждения для настройки PLL и проверки других источников пробуждения, подключённых к тому же прерыванию [SWS_EcuM_02929].
  • Цикл опроса: в последовательности опроса EcuM повторно вызывает callout-функции EcuM_SleepActivity и EcuM_CheckWakeup в блокирующем цикле до тех пор, пока о событии пробуждения не будет сообщено как об ожидающем обработки или валидированном [SWS_EcuM_03020].

Ограничения и обработка ошибок

Функция специфицирована как нереентерабельная (Non Reentrant) [SWS_EcuM_02929]. Поскольку вызовы происходят как из блокирующего хода последовательности опроса, так и из контекстов ISR, интеграция, вероятно, должна гарантировать отсутствие некоординированных параллельных вызовов. Вопрос Q-8bc8f164670a0911 (открытый) Специфические коды ошибок или уведомления об ошибках в DET или DEM для этого callout не определены.

Это указание по использованию сгенерировано автоматически на основе спецификации AUTOSAR.

Руководство разработчика реализации в подготовке (сложность I1)

функция EcuM_EndCheckWakeup [SWS_EcuM_02927] 📄 PDF

void EcuM_EndCheckWakeup (EcuM_WakeupSourceType WakeupSource);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 22fef1b09b30 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная функция EcuM_EndCheckWakeup вызывается программными модулями, когда асинхронная проверка источника пробуждения (как, например, в случае с асинхронным драйвером трансивера CAN) дает отрицательный результат, то есть событие пробуждения от этого источника отсутствует [SWS_EcuM_02927].

Использование и параметры

Через входной параметр WakeupSource типа EcuM_WakeupSourceType передается тот источник пробуждения, для которого должен быть отменен соответствующий таймер контроля [SWS_EcuM_02927]. Функция не возвращает значения (void) и не имеет входных/выходных или выходных параметров [SWS_EcuM_02927].

Принцип работы и параллелизм

  • Функция отменяет таймер CheckWakeupTimer для указанного источника пробуждения; с отменой этого таймера проверка источника пробуждения считается завершенной [SWS_EcuM_02927].
  • Интерфейс определен как синхронный и нереентерабельный (Non Reentrant) [SWS_EcuM_02927].
  • Объявление предоставляется через заголовочный файл EcuM_Externals.h [SWS_EcuM_02927].

Это указание по использованию было автоматически сгенерировано на основе спецификации AUTOSAR R20-11.

функция EcuM_CheckRamHash [SWS_EcuM_02921] 📄 PDF

uint8 EcuM_CheckRamHash (void);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: d1c6f593ca9f Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция EcuM_CheckRamHash представляет собой синхронный нереентерабельный callout (объявленный в EcuM_Externals.h), обеспечивающий тест целостности памяти RAM [SWS_EcuM_02921]. Функция не имеет параметров и возвращает значение статуса типа uint8: значение 0 сигнализирует о неудачном завершении теста, тогда как любое другое значение указывает на успешное прохождение [SWS_EcuM_02921].

Согласно [SWS_EcuM_02863] модуль EcuM перед остановом микроконтроллера сначала вызывает [SWS_EcuM_02919], а после возврата из состояния останова выполняет EcuM_CheckRamHash. Целью является проверка того, что содержимое RAM осталось согласованным даже после длительной фазы SLEEP [SWS_EcuM_02921].

Для реализации и последовательности действий действуют следующие граничные условия:

  • Алгоритм и область проверки: функция проверки предоставляется системным разработчиком; она не обязательно должна быть исчерпывающей, однако должна выполняться быстро и с достаточной надёжностью обнаруживать ошибки [SWS_EcuM_02921]. Проверяемые области следует выбирать тщательно; содержимое стека выполняющейся задачи, как правило, проверить невозможно [SWS_EcuM_02921].
  • Структура задач: передовой практикой считается выполнение генерации и проверки хэша в одной и той же непрерываемой задаче при минимальной промежуточной активности [SWS_EcuM_02921].
  • Многоядерные конфигурации: при наличии нескольких процессорных ядер с сателлитными модулями EcuM callout вызывается исключительно мастер-модулем EcuM и проверяет только данные в пределах его досягаемости [SWS_EcuM_02863], [SWS_EcuM_02921].

Специфические сообщения DET или DEM для этого callout не определены; реакция на ошибку при возвращаемом значении 0, вероятно, остаётся на усмотрение вышестоящего системного дизайна [SWS_EcuM_02921]. Вопрос Q-473ef8617db29fe3 (открытый)

Этот текст был создан ИИ и основан на спецификации AUTOSAR Classic R20-11.

функция EcuM_DisableWakeupSources [SWS_EcuM_02922] 📄 PDF

void EcuM_DisableWakeupSources (EcuM_WakeupSourceType wakeupSource);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 474e253af285 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронный интерфейс EcuM_DisableWakeupSources с Service-ID 0x44 служит для того, чтобы настроить источники пробуждения, определенные в битовом поле параметра wakeupSource типа EcuM_WakeupSourceType, таким образом, чтобы они больше не могли разбудить ECU [SWS_EcuM_02922]. Сигнатура функции имеет вид void EcuM_DisableWakeupSources (EcuM_WakeupSourceType wakeupSource) [SWS_EcuM_02922].

Для контекста вызова и интеграции в соответствии со спецификацией действуют следующие свойства:

  • Вызывающий модуль и заголовочный файл: функция вызывается модулем ECU Manager и предоставляется через заголовочный файл EcuM_Externals.h [SWS_EcuM_02922].
  • Параметры и возвращаемые значения: в качестве единственного входного параметра передается битовое поле wakeupSource. Функция не имеет ни входных/выходных, ни выходных параметров и не возвращает значения (void) [SWS_EcuM_02922].
  • Семантика выполнения и параллелизм: обработка выполняется синхронно. Кроме того, функция специфицирована как нереентерабельная (Non Reentrant), поэтому одновременных или вложенных вызовов необходимо избегать [SWS_EcuM_02922].

Что касается обработки ошибок, спецификация для этого вызова функции не содержит ни специфических кодов ошибок, ни уведомлений для DET или DEM [SWS_EcuM_02922].

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR CP R20-11.

функция EcuM_AL_DriverRestart [SWS_EcuM_02923] 📄 PDF

void EcuM_AL_DriverRestart (void);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: f02a8bab5708 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Callout EcuM_AL_DriverRestart объявляется через заголовочный файл EcuM_Externals.h и имеет Service-ID 0x45 [SWS_EcuM_02923]. Функция имеет сигнатуру void EcuM_AL_DriverRestart (void), не требует входных параметров и не возвращает значения [SWS_EcuM_02923]. Назначение этого интерфейса заключается в том, чтобы в случае пробуждения (Wakeup Case) обеспечить инициализацию драйверов, а также другие аппаратные операции во время фазы запуска [SWS_EcuM_02923].

Для интеграции и взаимодействия с модулем EcuM действуют обязательные требования:

  • Для повторной инициализации во время фазы WakeupRestart интегратор должен включить блок перезапуска в интеграционный код для EcuM_AL_DriverRestart, который использует сконфигурированный список EcuMDriverRestartList [SWS_EcuM_02947] [SWS_EcuM_02923].
  • Список EcuMDriverRestartList может содержать драйверы, выступающие в качестве источников пробуждения (Wakeup Sources) [SWS_EcuM_02562]. В этом случае EcuM_AL_DriverRestart должен снова взвести (re-arm) механизм срабатывания обратного вызова для распознавания пробуждения («wakeup detected») этих драйверов [SWS_EcuM_02562].

Что касается поведения во время выполнения, функция определена как синхронная и нереентерабельная [SWS_EcuM_02923]. Поскольку речь идёт о специализированном интеграционном коде, спецификация не определяет для этого интерфейса собственных кодов ошибок, а также стандартизированных сообщений в DET или DEM.

Этот текст был создан ИИ. Сведения могут быть неполными и не заменяют официальную спецификацию AUTOSAR.

Руководство разработчика реализации в подготовке (сложность I2)

функция EcuM_StartWakeupSources [SWS_EcuM_02924] 📄 PDF

void EcuM_StartWakeupSources (EcuM_WakeupSourceType wakeupSource);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 72a2492ac382 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Callout-функция EcuM_StartWakeupSources служит для того, чтобы запустить и ввести в работу переданный(-е) источник(-и) пробуждения таким образом, чтобы они были подготовлены к последующему проведению валидации пробуждения (Wakeup Validation) [SWS_EcuM_02924].

Использование и контекст вызова

Функция специфицирована как синхронный вызов с Service-ID 0x46, не имеет возвращаемого значения (void) и предоставляется через заголовочный файл EcuM_Externals.h [SWS_EcuM_02924].

  • Параметр wakeupSource (in): передаёт запускаемый источник пробуждения или битовую маску нескольких источников пробуждения типа EcuM_WakeupSourceType в callout-функцию [SWS_EcuM_02924]. Дополнительные входные/выходные или выходные параметры (inout/out) отсутствуют [SWS_EcuM_02924].

Параллелизм и ограничения

В отношении среды выполнения EcuM_StartWakeupSources классифицирован как нереентерабельный (Non Reentrant) [SWS_EcuM_02924]. Поэтому вызывающие стороны должны гарантировать, что функция не выполняется одновременно из прерывающих процедур обработки прерываний или параллельных задач.

Взаимодействие и обработка ошибок

Поскольку EcuM_StartWakeupSources объявлен как callout, низкоуровневая аппаратная активация соответствующих источников возлагается на пользовательскую реализацию системным интегратором [SWS_EcuM_02924]. Спецификация не предусматривает для этого интерфейса ни сообщений об ошибках в DET или DEM, ни специфических возвращаемых значений ошибок [SWS_EcuM_02924]; поэтому возможные состояния ошибок при запуске источников, вероятно, должны перехватываться с учётом особенностей интеграции внутри callout. Вопрос Q-b595e7175c34a831 (открытый)

Этот текст был создан ИИ и основан на спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция EcuM_CheckValidation [SWS_EcuM_02925] 📄 PDF

void EcuM_CheckValidation (EcuM_WakeupSourceType wakeupSource);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: c36dd6936c23 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция EcuM_CheckValidation служит callout-интерфейсом модуля ECU State Manager для проверки источника пробуждения [SWS_EcuM_02925]. EcuM вызывает эту функцию, чтобы определить, является ли обнаруженное событие пробуждения действительным [SWS_EcuM_02925].

Использование

Callout имеет идентификатор службы 0x47 и предоставляется через заголовочный файл EcuM_Externals.h [SWS_EcuM_02925]. В качестве передаваемого параметра служит wakeupSource типа EcuM_WakeupSourceType, посредством которого идентифицируется валидируемый источник пробуждения [SWS_EcuM_02925]. Функция не возвращает значения (void) и не имеет выходных или входных/выходных параметров [SWS_EcuM_02925]. Выполнение происходит синхронно [SWS_EcuM_02925].

Обработка ошибок

Специфические коды ошибок, возвращаемые значения в случае ошибки или сообщения в DET либо DEM для данного callout в спецификации не определены.

Параллелизм и ограничения

Что касается параллелизма, EcuM_CheckValidation определена как нереэнтрантная (Non Reentrant) [SWS_EcuM_02925]. Вызывающий контекст EcuM должен гарантировать, что параллельные или вложенные вызовы для одного и того же или различных источников пробуждения не происходят.

Взаимодействие

Если во время выполнения было распознано действительное событие пробуждения, о нём обязательно должно быть сообщено обратно в EcuM через вызов функции EcuM_ValidateWakeupEvent() [SWS_EcuM_02925]. Интерпретация: аппаратно-зависимая логика проверки оборудования, а также решение о действительности, вероятно, полностью реализуются в интеграционном коде. Вопрос Q-08061e09b474728d (открытый)

Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR CP R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция EcuM_StopWakeupSources [SWS_EcuM_02926] 📄 PDF

void EcuM_StopWakeupSources (EcuM_WakeupSourceType wakeupSource);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 63994628bd66 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Callout-функция EcuM_StopWakeupSources модуля EcuM (Classic Platform) служит для целенаправленного останова переданного(-ых) источника(-ов) пробуждения после неуспешной валидации пробуждения [SWS_EcuM_02926]. Объявление этого синхронного интерфейса доступно через заголовочный файл EcuM_Externals.h и имеет Service-ID 0x48 [SWS_EcuM_02926].

Использование и параметры интерфейса:

  • Входной параметр: в качестве единственного параметра передаётся wakeupSource типа EcuM_WakeupSourceType, определяющий останавливаемый(-ые) источник(-и) пробуждения [SWS_EcuM_02926].
  • Возвращаемое значение и входы/выходы: не существует ни входных/выходных параметров (inout), ни выходных параметров (out) [SWS_EcuM_02926]. Функция не возвращает вызывающей стороне возвращаемого значения (void) [SWS_EcuM_02926].
  • Поведение при выполнении: выполнение функции определено как синхронное (Synchronous) [SWS_EcuM_02926].

Параллелизм и обработка ошибок:

Интерфейс специфицирован как нереентерабельный (Non Reentrant) [SWS_EcuM_02926]. Поэтому параллельные вызовы недопустимы и должны предотвращаться вызывающей стороной. Спецификация не определяет для этого callout ни специфических кодов ошибок, ни возвращаемых значений, ни уведомлений для модуля Default Error Tracer (DET) или Diagnostic Event Manager (DEM) [SWS_EcuM_02926]. Интерпретация: поскольку функция предоставляется как внешний callout через EcuM_Externals.h, аппаратная деактивация соответствующего оборудования пробуждения, а также внутренняя обработка ошибок возлагаются на пользовательскую реализацию. Вопрос Q-b537c805bed751ab (открытый)

Данный текст был сгенерирован ИИ на основе спецификации R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция EcuM_MainFunction [SWS_EcuM_02837] 📄 PDF

void EcuM_MainFunction (void);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 9ac46d3f83ab Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и контекст вызова

Функция EcuM_MainFunction имеет сигнатуру void EcuM_MainFunction(void) с Service ID 0x18 и предоставляется через заголовочный файл SchM_EcuM.h [SWS_EcuM_02837]. Она не принимает параметров и не возвращает значения [SWS_EcuM_02837]. Ее задача заключается в выполнении всех действий ECU State Manager, пока операционная система работает («OS is up and running») [SWS_EcuM_02837]. При этом функция, вероятно, обычно вызывается планировщиком периодически (интерпретация: интеграция через SchM_EcuM.h). Вопрос Q-ca471f22bdb1f11d (открытый)

Взаимодействие и задачи

Во время работы EcuM_MainFunction берет на себя центральные задачи координации:

  • Валидация источников пробуждения: если после завершения последовательности WakeupRestart имеется список кандидатов на источники пробуждения (Wakeup Source), модуль EcuM валидирует этих кандидатов в рамках EcuM_MainFunction [SWS_EcuM_02539].
  • Истечение таймаута валидации: при истечении таймаута валидации для ожидающего события пробуждения функция устанавливает соответствующий бит во внутренней переменной для истекших событий пробуждения с помощью операции «ИЛИ» [SWS_EcuM_04081]. Кроме того, она уведомляет BSW Management через BswM_EcuM_Current_Wakeup с битовой маской EcuM_WakeupSourceType события и статусом ECUM_WKSTATUS_EXPIRED [SWS_EcuM_04082].
  • Alarm Clock Service: если служба присутствует через EcuMAlarmClockPresent, то EcuM_MainFunction обновляет таймер Alarm Clock [SWS_EcuM_04002].

Ограничения и экземпляры

В качестве существенного граничного условия для многоядерных или многоэкземплярных архитектур действует требование: EcuM_MainFunction должна выполняться во всех экземплярах EcuM [SWS_EcuM_04011].

Это указание по использованию было автоматически сгенерировано на основе спецификации R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

тип EcuM_ConfigType [SWS_EcuM_04038] 📄 PDF

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

тип EcuM_RunStatusType [SWS_EcuM_04120] 📄 PDF

Result of the Run Request Protocol sent to BswM

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 94aa8a70183e Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Тип данных EcuM_RunStatusType определен как uint8 и предоставляется через заголовочный файл EcuM.h ([SWS_EcuM_04120]). Он служит для формального представления текущего статуса протокола Run-Request в ECU-менеджере и передается в качестве результата в Basic Software Mode Manager (BswM) ([SWS_EcuM_04120]).

Допустимый диапазон значений включает три дискретных состояния ([SWS_EcuM_04120]):

  • ECUM_RUNSTATUS_UNKNOWN (значение 0): представляет неизвестный статус и одновременно служит определенным значением инициализации (Init Value).
  • ECUM_RUNSTATUS_REQUESTED (значение 1): обозначает состояние, при котором статус RUN был активно запрошен ECU-менеджером.
  • ECUM_RUNSTATUS_RELEASED (значение 2): сигнализирует о том, что статус RUN был снова освобожден ECU-менеджером.

Что касается взаимодействия, требование [SWS_EcuM_04121] обязывает модуль ECU-менеджера в обязательном порядке информировать BswM о текущем состоянии протокола Run-Request на основе значений статуса, приведенных в EcuM_RunStatusType. Интерпретация: поскольку в требовании не указаны конкретная сигнатура функции или соглашение о вызовах для потока сообщений, информация о статусе, вероятно, типичным образом передается в модуль BswM через внутреннюю функцию уведомления или интерфейс обратного вызова. Вопрос Q-e136b90c2edbc29c (открытый) Специфические коды ошибок, сообщения DET или DEM, а также особые условия реверсивности (реэнтрантности) для этого элементарного типа данных в данных требованиях не предусмотрены.

Это указание по использованию было автоматически создано на основе спецификации AUTOSAR Classic R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

тип EcuM_WakeupSourceType [SWS_EcuM_04040] 📄 PDF

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

тип EcuM_WakeupStatusType [SWS_EcuM_04041] 📄 PDF

The type describes the possible states of a wakeup source.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 99623532d1ab Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Согласно [SWS_EcuM_04041] тип данных EcuM_WakeupStatusType описывает возможные состояния источника пробуждения (Wakeup Source) в ECU State Manager. Тип является производным от базового типа uint8 и предоставляется через заголовочный файл EcuM.h [SWS_EcuM_04041].

Диапазон значений отображает жизненный цикл события пробуждения через четыре состояния [SWS_EcuM_04041]:

  • ECUM_WKSTATUS_NONE (значение 0): ожидающее обработки событие пробуждения не обнаружено [SWS_EcuM_04041].
  • ECUM_WKSTATUS_PENDING (значение 1): событие пробуждения обнаружено, но ещё не валидировано [SWS_EcuM_04041].
  • ECUM_WKSTATUS_VALIDATED (значение 2): событие пробуждения действительно и успешно подтверждено [SWS_EcuM_04041].
  • ECUM_WKSTATUS_EXPIRED (значение 3): событие пробуждения не было валидировано своевременно и, следовательно, истекло [SWS_EcuM_04041].

Использование и взаимодействие: тип служит центральным представлением статуса для источников пробуждения. Интерпретация: вызывающие стороны, вероятно, оценивают этот статус в рамках запросов состояния, чтобы определить, проходит ли источник пробуждения активную валидацию, уже просигнализировал о действительном пробуждении или временное окно валидации было превышено. Вопрос Q-a3f721e8f1753eb1 (открытый)

Этот текст был сгенерирован автоматически. Все данные основаны исключительно на требованиях спецификации соответствующего релиза.

Руководство разработчика реализации в подготовке (сложность I1)

тип EcuM_ResetType [SWS_EcuM_04044] 📄 PDF

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

тип EcuM_StateType [SWS_EcuM_91005] 📄 PDF

ECU State Manager states.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 04e4b37b6e32 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Тип EcuM_StateType представляет собой тип данных, производный от uint8, который предоставляется через заголовочный файл EcuM.h и отображает рабочие состояния ECU State Manager [SWS_EcuM_91005]. Модуль EcuM обязан определить все состояния, перечисленные в EcuM_StateType [SWS_EcuM_02664]. Диапазон значений охватывает маску подсостояний ECUM_SUBSTATE_MASK (0x0f), а также главные состояния ECUM_STATE_STARTUP (0x10), ECUM_STATE_RUN (0x32), ECUM_STATE_POST_RUN (0x33), ECUM_STATE_SHUTDOWN (0x40) и ECUM_STATE_SLEEP (0x50) [SWS_EcuM_91005].

Использование и взаимодействие

Тип данных функционирует как центральный параметр для обмена состояниями между BswM и EcuM:

  • Изменение состояния для EcuM: через синхронный и реентерабельный вызов функции EcuM_SetState(EcuM_StateType state) с Service-ID 0x2b модуль BswM уведомляет модуль EcuM об изменении состояния [SWS_EcuM_04122].
  • Сообщение состояния модулю BswM: EcuM сообщает о текущем состоянии модулю BswM путем вызова интерфейса BswM_EcuM_CurrentState(EcuM_StateType State) [SWS_EcuM_04143].

Параллелизм, порядок следования и обработка ошибок

В отношении временного порядка следования действует требование, согласно которому новое состояние может быть установлено EcuM только тогда, когда RTE выдала свой ответ через соответствующий порт подтверждения (Acknowledgement Port) [SWS_EcuM_04143]. Специфические коды ошибок, возвращаемые значения или сообщения DET/DEM для этого типа данных в имеющихся источниках не предусмотрены.

Это указание по использованию было сгенерировано автоматически на основе требований спецификации.

Руководство разработчика реализации в подготовке (сложность I1)

тип EcuM_Mode [SWS_EcuM_04107] 📄 PDF

–

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 930c9709cbac Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Тип EcuM_Mode определен как ModeDeclarationGroup согласно [SWS_EcuM_04107] и представляет центральные состояния ECU State Manager. В качестве начального режима задан STARTUP. Кроме того, группа включает определенные режимы POST_RUN, RUN, SHUTDOWN, а также SLEEP [SWS_EcuM_04107].

В составе системы EcuM_Mode служит базовым типом для группы режимов currentMode внутри сервисного интерфейса EcuM_CurrentMode [SWS_EcuM_04108]. Через этот интерфейс можно запросить текущий режим ECU или передать его другим программным компонентам с помощью механизма режимов RTE.

Что касается контекста вызова и параллелизма, сама спецификация типа не содержит явных ограничений относительно реентерабельности или кодов ошибок; управление переходами состояний осуществляется через соответствующие сервисные интерфейсы EcuM.

Это примечание было сгенерировано автоматически и основано на данных спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

тип currentMode [SWS_EcuM_04112] 📄 PDF

–

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: b0199fd54780 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Элемент currentMode определен как предоставленный порт (Provided-Port) модуля EcuM и предоставляет сервисный интерфейс EcuM_CurrentMode для программной архитектуры [SWS_EcuM_04112]. Этот сервисный интерфейс служит для считывания текущего режима ECU и инкапсулирует группу режимов currentMode на основе типа данных EcuM_Mode [SWS_EcuM_04108].

В ходе работы системы используется для сигнализации об изменениях состояния:

  • Вызов и использование: как только происходит смена режима, EcuM сообщает об этом через RTE-порты режима программным компонентам (SW-C) [SWS_EcuM_04133]. В предположении спецификации относительно имени порта currentMode и при использовании прямого API RTE для этого вызывается функция Rte_Switch_currentMode_currentMode( Rte_ModeType_EcuM_Mode mode) [SWS_EcuM_04133].
  • Параметры и возвращаемое значение: параметр mode передает в RTE вновь принимаемый режим [SWS_EcuM_04133]. Возвращаемое значение типа Rte_StatusType, предоставляемое API переключения, не обрабатывается, а согласно спецификации обязательно должно игнорироваться [SWS_EcuM_04133].
  • Взаимодействие: программный компонент, который должен информироваться об изменениях режима, должен запрашивать интерфейс переключения режима EcuM_CurrentMode в качестве Required-порта [SWS_EcuM_04133].

Данное указание по использованию было сгенерировано автоматически и основано исключительно на требованиях спецификации релиза R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

тип EcuM_ShutdownCauseType [SWS_EcuM_04045] 📄 PDF

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

тип EcuM_ShutdownModeType [SWS_EcuM_04101] 📄 PDF

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 799a0b090179 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и диапазон значений

Тип данных EcuM_ShutdownModeType основан на uint16 и предоставляется через заголовочный файл Rte_EcuM_Type.h [SWS_EcuM_04101]. Он отображает режимы, сконфигурированные в ECU State Manager. Его диапазон значений охватывает:

  • сконфигурированные режимы сна согласно EcuMSleepModeId [SWS_EcuM_04101], а также
  • сконфигурированные режимы сброса, вычисляемые из смещения 256 + EcuMResetModeId [SWS_EcuM_04101].

Взаимодействие и контекст вызова

Тип используется в синхронных и реентерабельных службах ECU Manager:

  • EcuM_SelectShutdownTarget принимает shutdownMode в качестве входного параметра, чтобы задать конкретный режим сна (при цели ECUM_SHUTDOWN_TARGET_SLEEP) или механизм сброса (при цели ECUM_SHUTDOWN_TARGET_RESET) [SWS_EcuM_02822].
  • EcuM_GetShutdownTarget через параметр-указатель на EcuM_ShutdownModeType возвращает, какой именно сконфигурированный режим сна или сброса выбран для текущей цели отключения [SWS_EcuM_02824].
  • EcuM_GetLastShutdownTarget выводит режим предыдущего процесса отключения через выходной параметр [SWS_EcuM_02825]. Через сервисный интерфейс EcuM_ShutdownTarget эта функциональность также доступна программным компонентам (SW-C) [SWS_EcuM_03011].

Обработка ошибок и граничные условия

Функции возвращают Std_ReturnType. Если, например, в EcuM_GetShutdownTarget или EcuM_GetLastShutdownTarget передается NULL-указатель, вызов завершается с ошибкой E_NOT_OK [SWS_EcuM_02824], [SWS_EcuM_02825]. При успешном выполнении службы возвращают E_OK [SWS_EcuM_02822], [SWS_EcuM_03011].

Это указание по использованию было сгенерировано автоматически на основе требований спецификации.

Руководство разработчика реализации в подготовке (сложность I1)

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

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

Карта тем

Инициализация и состояние

2

Сервисы · On…

2

Сервисы · Release…

2

Сервисы · Request…

2

Циклические

1

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

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

Инициализация и состояние

EcuM_GetVersionInfo функция

Returns the version information of this module.

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

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

void EcuM_Init (void);

Сервисы · Get…

EcuM_GetBootTarget функция

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

Сервисы · A…

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

Сервисы · Set…

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

Сервисы · Check…

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

Сервисы · Select…

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

Сервисы · On…

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

Сервисы · Release…

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

Сервисы · Request…

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

Сервисы · Start…

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

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

void EcuM_StartWakeupSources (EcuM_WakeupSourceType wakeupSource);

Сервисы · Прочее

EcuM_AbortWakeupAlarm функция

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

This function implements the STARTUP II state.

void EcuM_StartupTwo (void);
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);

Циклические

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

Типы

–

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.