泉州不锈钢保温 车载软件架构 —— 闲聊几句AUTOSAR OS(十一)
发布日期:2026-01-01 00:16 点击次数:184
车载软件架构 —— 闲聊几句AUTOSAR OS(十一)我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师:“没有人关注你。也无需有人关注你。你须承认自己的价值,你不能站在他人的角度来反对自己。人生在世,怕的就是把别人的眼光当成自己生活的唯一标准。到后,既没有活成别人喜欢的样子,也没有活成自己想要的样子。我们只有接纳真实的自己,不自卑、不自傲,才能拥有更强大的内心;只有找到自己的核心价值,才能活出自己的精彩人生。
”图片
本文主要讲述如下内容,接着上一篇的介绍内容,继续聊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地址获取方式
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。
徐州铝皮保温厂家 【启动总裁下载】225年新官郑再版启动总裁
荆门不锈钢保温工程 西安电子科技大学225年本科招生规矩
兰州铁皮保温施工 北京市全民健身大赛暨北京毽球跳绳邀请赛落幕
萍乡不锈钢保温 《光环》士官长配音演员不但愿 AI 法其标记
新乡铝皮保温厂家 尊府:法甲联赛225-226赛季主场积分榜
丹东储罐保温 永鼎股份300亿市值背后,“创三代”莫思铭的远
