介绍EcuM模块,管理ECU运行状态,上电工作流程,规定上电时 Startup需要做什么操作,正常运行Run需要做什么操作,休眠Sleep时需要做什么操作,关机下电ShutDown做什么操作,唤醒Wakeup需要做什么操作,这五大流程管理。
EcuM的初始化,在main函数里。
Startup sequence
在上述的ECU启动过程中,可以看出ECU的一般启动过程涉及到Boot,C_Init,EcuM,OS等模块,在这些模块的共同接力下保证BSW及RTE成功初始化,进而使得整个SW-C处于正常running的过程。
ECU启动时,首先通过中断向量表运行引导程序(俗称BootLoader),Bootloader在满足一定条件下跳转至APP程序中的C_Init处并指向Main函数。在Main函数中首先完成堆栈空间的初始化,然后调序EcuM_Init函数进入到后续的StartPreOS,StartOS阶段。
在开启OS的初始化函数中调用EcuM_StartupTwo进行第二启动阶段的初始化,最后就是进入StartPostOS阶段,如完成BswM模块的初始化,进而将控制权转交给BswM模块。
由于接力赛中首棒很关键,因此本文将重点关注EcuM模块的启动与关闭过程,