Autosar EcuM学习笔记-上电初始化执行函数及下电前执行函数

文章目录

前言

Autosar启动和下电过程由EcuM控制,本文介绍EcuM中的初始化和下电前的执行函数

Autosar标准

EcuM启动时的初始化

在标准中,主核启动流程如下:

从核启动流程如下:

EcuM_AL_DriverInitZeroEcuM_AL_DriverInitOne 函数是在EcuM_Init 中调用的,对应规范中的需求:

但目前ETAS的代码,InirtZero只在主核 中调用。

EcuM_AL_DriverInitZero主要是初始化跟硬件相关的模块,是在校验EcuM的配置 之前进行初始化的(通过调用EcuM_Prv_PBPointerConsistencyCheck函数)。目前项目中没有配置。

EcuM_AL_DriverInitOne也是初始化跟硬件相关的模块,只是在校验完EcuM的配置之后。

EcuM下电执行过程

在标准中,主核的下电流程如下:

OS关闭前:

OS关闭后:

从核的下电流程如下:

OS关闭前:

OS关闭后:

由上图可知,EcuM_OnGoOffOne和EcuM_OnGoOffTwo 的主要区别 在于OffOne在OS关闭前而OffTwo在OS关闭后

EcuM_OnGoOffOne 函数由EcuM_Prv_ProceedShutdown函数调用,而EcuM_Prv_ProceedShutdown函数运行需要GoDown Flag置true,这个置位是在BswM中完成的(实际调用EcuM_GoDown 函数),标准中描述如下:

EcuM_OnGoOffOne的函数原型如下:

EcuM_OnGoOffTwo 函数由EcuM_Shutdown函数调用,EcuM_Shutdown在OS shutdown hook中运行。也就是在OS关闭之后运行,规范中描述如下:

EcuM_OnGoOffTwo的函数原型如下:

一般在这个阶段,进行Nvm_WriteAll函数调用。也就是说不管是复位还是正常下电 ,都会走Nvm_WriteAll

在正常下电的最后一个阶段,会调用EcuM_AL_SwitchOff

在这个函数中,需要实现使MCU休眠的逻辑

总结

EcuM还有很多细节,有空可以再研究,后面会介绍EcuM中的配置

相关推荐
汽车通信软件大头兵2 天前
Autosar--ETAS Isolar能够自由学习啦!
网络·学习·安全·汽车·etas·uds·isoalr
龙智DevSecOps解决方案15 天前
汽车网络安全开发语言选型指南:C/C++/Rust/Java等主流语言对比+Perforce QAC/Klocwork工具支持
开发语言·autosar·嵌入式开发·perforce·代码安全·汽车网络安全
NewCarRen17 天前
符合AUTOSAR标准的汽车SoC软件架构及其漏洞
autosar
赞哥哥s1 个月前
Autosar Xcp配置-支持CANFD 64byte标定更改-基于ETAS软件
can·autosar·xcp
嵌软小白呗2 个月前
手写Autosar架构的CAN通讯协议栈2(CanIf模块详解-上)
autosar
旅行的橘子汽水3 个月前
【S32K3XX系列MCAL配置-第一节开发环境搭建】
autosar·mcal
赞哥哥s4 个月前
中断屏蔽实现方法-ARM内核
arm开发·autosar
auto-mooc4 个月前
到底什么是智能网联汽车??第一期——感知
自动驾驶·汽车·autosar·车载通信·智能网联汽车·域控制器
老猿讲编程4 个月前
从航空FACE的一个落地方案漫谈汽车HPC软件架构的思维转变(2/3)FACE的“段”同Autosar的“层”概念区别探索
autosar·软件架构·face
原野风霜3244 个月前
AutoSar RTE介绍
autosar·rte