莫得东谈主柔软你。也无需有东谈主柔软你。你必须承认我方的价值,你弗成站在他东谈主的角度来反对我方。东谈主生活着,最怕的便是把别东谈主的目光当成我方生涯的唯独圭臬。到临了,既莫得活成别东谈主可爱的形式,也莫得活成我方思要的形式。咱们唯独遴荐真确的我方,不自卑、不自恃范冰冰 女同,时期领有更遍及的内心;唯独找到我方的中枢价值,时期活出我方的精彩东谈主生。
”图片范冰冰 女同
本文主要论述如下执行,接着上一篇的先容执行,继续聊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地址赢得形式范冰冰 女同
本站仅提供存储劳动,总共执行均由用户发布,如发现存害或侵权执行,请点击举报。