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中的配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赞哥哥s

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值