[AutoSar]基础部分 RTE 08 runnable mapping

2024-01-09 17:02:39


??

关键词

嵌入式、C语言、autosar、runnable

平台说明

项目Value
OSautosar OS
autosar厂商vector
芯片厂商TI
编程语言C,C++
编译器HighTec (GCC)

在这里插入图片描述

一、runnable mapping的必要性

??runnable如果不mapping的话只是相当于一个函数,OS无法调度,并且一定会在Davinci configurator中报错(当前runnable未mapp)。
??runnable mapping到task之后,将调度交给了OS,在满足一定条件的时候将触发运行runnable。
在这里插入图片描述

二、runnable mapping 通用规则

①同类型的runnable尽量放到同一个task例如init类型。
②同周期的runnable尽量放到同一个task。
③如非必要,将同核的runnable放到同一个task。
④mapping的时候考虑好runnable的优先级核task优先级。
⑤mapping的时候考虑好多核间的cpuload 均衡。

三、Task type

??详细的在后面OS章节讲解,在这里只需要知道如果选auto类型,并且在同一个task中mapping了不同周期的runnable,会被自动判定为extended类型的task。
在这里插入图片描述

四、可以不用mapping的runnbale

①BSW层中的服务组件的callback类型runnable。
②C/S中的服务端runnable,如下图,CpApSWC1中有两个runnable,一个为C/S服务端,一个为10ms类型的runnable。只要我们至少在task中mapping了那个10ms的runnable,那么另一个C/S 服务端的runnable就可以不mapping。至于mapping和不mapping的区别,详情见 [AutoSar]工程中的cpuload陷阱(一)第二节。
在这里插入图片描述

文章来源:https://blog.csdn.net/weixin_42447823/article/details/135479514
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。