发布日期:2024-10-28 21:07 点击次数:148
莫得东说念主真贵你。也无需有东说念主真贵你。你必须承认我方的价值,你不可站在他东说念主的角度来反对我方。东说念主生辞世,最怕的即是把别东说念主的眼神当成我方生存的独一圭臬。到终末,既莫得活成别东说念主心爱的状貌,也莫得活成我方思要的状貌。咱们唯有接收着实的我方,不自卑、不豪恣,能力领有更宏大的内心;唯有找到我方的中枢价值,能力活出我方的精彩东说念主生。
”图片
本文主要发挥注解如下履行,接着上一篇的先容履行,链接聊AUTOSAR OS干系履行:-> 1、AUTOSAR OS的启动-> 2、AUTOSAR OS的关闭前边的系列著述中先容了AUTOSAR OS的发展历程,以过甚中突出迫切的元素,办法,和干系的完满机制;并要点先容一下成立器用里的OS模块需要留心的履行和成立项。而在当下主流的车载MCU中,特地是在网关,区域胁制器,三电胁制器等范围中大多使用的是性能较强的多核MCU芯片;因此,将会基于多核MCU的架构下,来发挥注解AUTOSAR OS多核的启动和关闭过程。一、AUTOSAR OS的启动在AUTOSAR OS中,多核OS系统会分为主从结构,主核是在上电动手时自动启动的;其他的从核是由主核,简略其他的从核来进行启动的。最动手上电动手时,主核会奉行Reset所对应中断工作表率,即主核的启动代码。在启动代码中完成MCU的一些底层重要的成立,如PLL成立,FPU成立等,也会去运行化内存,和干系的内核寄存器(有本事也会运行化部分外设寄存器),运行化中断向量表地址,Trap向量表的地址等等。启动代码奉行完毕以后,就会干涉到main函数中,然后奉行相应的下一阶段的运行化行为,如Os_InitMemory(),Os_Init (),EcuM_Init()等函数。此处需要特地发挥的是,每个内核王人需要奉行启动代码表率,启动代码不错是我方特有的,简略是一份启动代码,每个内核奉行不同的代码片断(通过不同的Core ID来分裂)。OS在启动的本事,是和EcuM的上电启动过程,和成立息息干系的,当Master Core在main函数中奉行到EcuM_Init()函数,会去轮番奉行一些基础的运行化列表,如各个BSW模块的Memory运行化(InitZero),以及一些BSW模块之下的底层模块,如Mcu, Port,ADC,Gpt等模块的运行化任务(InitOne)。这些模块是启动其他Core,以及启动OS所必需的模块。当这些运行化完成以后,会调用EcuM_StartOS()函数,在这个函数里,会把柄所成立的内核数目,调用StartCore()轮番启动其他几个Slave Core。其他几个Core启动以后,会轮番按照规章奉行启动代码,main函数,EcuM_Init()函数等等来完成相应的行为。StartCore()函数调用完毕以后,各个核之间会进行第一次同步,同步完成了以后再奉行下一步操作。图片
当每个Core王人启动且同步完成,每个Core王人会调用StartOS(),来开启OS;这个本事需要提前在成立器用中为每个Core成立一个自动休养奉行的运行化Task,此Task需要成立为自动启动,高优先级,以及不可被霸占。当OS启动之后,每个Core会分别去调用所成立的运行化Task,在Task中会去奉行EcuM_StatupTwo(),在这个函数中去奉行OS开启休养之前的准备责任,如SchM_Start(), SchM_Init(), BswM_Init(), 以及所用到的BSW模块的运行化。当运行化完成以后,每个Core王人会去奉行Rte_Start(),主核会去判断其他统统从核是否王人奉行了Rte_Start(),要是奉行了,主核本身会去Rte_Start(),认真开启OS Task休养。从核这边我方先奉行Rte_Start(),然后再恭候主核奉行罢了Rte_Start()以后,也认真开启OS Task休养,如下图所示默示图。此处调用的Rte_Start(),亦然多核OS启动过程中的第二次同步。图片
如下图所示,不错将AUTOSAR OS中多核启动的过程进行转头。在通盘启动过程中,不同的核间会进行两次同步,第一次是在奉行StartCore()会进行一次同步;第二次是在奉行Rte_Start()时进行同步的。两次同步完毕以后,每个Core会认真开启休养,动手奉行用户所成立的Task,简略ISR中断工作表率。至此,OS的上电启动依然完成了。需要特地补充发挥的是,OS的启动过程是EcuM上电过程的一部分,后续在模式料理著述中会对EcuM的上电过程链接进行先容。图片
二、AUTOSAR OS的关闭一般情况下,当ECU需要关闭,简略重启的本事,EcuM会干涉到ShutDown阶段,会一次关闭BswM模块,关闭BSW的休养表,检查叫醒事件等等。和EcuM上电的过程基本相悖(在后续的AUTOSAR模式料理的系列著述中,会详备发挥的)。然后才动手关闭OS。和OS启动过程稍有不同,OS的关闭过程相对来说没那么多的设施了。图片
一般情况下,在OS关闭的情况下,每个Core王人会去奉行EcuM_GoDown(),然后去奉行ShutdownOS()来完成OS 的关闭。当OS在关闭的过程中,每个OS Application会去调用各自的Shutdown Hook来完成对应的回调表率。随后,就恭候到同步点,进行各个核间的关闭本事的同步。同步完成以后,奉行终末的Shutdown Hook。固然,针对上述的关闭过程,需要在EcuM中作念相应的成立,如,需要成立Bsw Core的ID,一般成立为主核ID。同期,也要使能去向理从核的OS关闭过程的履行。如底下截图所示的成立。图片
停笔共享完毕!愿你我信服时辰的力量作念一个永久办法者!图片
车载软件架构 —— 闲话几句AUTOSAR OS(九)
车载软件架构 —— 闲话几句AUTOSAR OS(八)
车载软件架构 —— 闲话几句AUTOSAR OS(七)
电子电气架构——车载DoIP通讯汇总
车载软件架构 —— 闲话几句AUTOSAR OS(六)
会诊测试器用CANoe.DiVa从初学到精明系列——开门见山
电子电气架构 —— OEM对于DTC具体完满干系观点
车载软件架构 —— 闲话几句AUTOSAR OS(五)
车载软件架构 —— 闲话几句AUTOSAR OS(四)
车载会诊公约 —— 会诊工作Service 11
车载软件架构 ——闲话几句AUTOSAR OS(三)
车载软件架构 —— 闲话几句AUTOSAR OS(二)
车载会诊公约-ISO 14229
车载会诊公约-ISO 14229 / 13400 /15765
车载软件架构——闲话几句AUTOSAR OS(一)
电子电气架构——IP地址获得花样
本站仅提供存储工作,统统履行均由用户发布,如发现存害或侵权履行,请点击举报。