求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
要资料
 
追随技术信仰

随时听讲座
每天看新闻
 
 
AUTOSAR实战教程
1.AUTOSAR相关知识
1. 老板说项目要上AUTOSAR,我慌得一批
2. 我淡定地撸了一遍AUTOSAR的基本概念
3. AUTOSAR初学者最想搞懂的东西
2.AUTOSAR理论基础
AUTOSAR架构
1. AUTOSAR架构的故事(干货)
2. AUTOSAR架构之通信服务(干货)
3. 这次我通过Interface来贯穿整个AUTOSAR架构
AUTOSAR启动与初始化
1. 解析AUTOSAR Startup
2.AUTOSAR架构中的配置文件
3.SWC详解与配置实现
1.AUTOSAR Port原理概念详解
4.BSW原理和实战演练
1. AUTOSAR折磨,从新建工程开始
2. AUTOSAR的BswM模块详解
3. 图解AUTOSAR NVM模块
4. AUTOSAR架构的 Pdu Router
5. AUTOSAR中的vLinkGen可以干嘛
6. MCAL Wdg模块解析
7. MCAL PWM Module详解
8. AUTOSAR的Memory是如何设计的?
9. AUTOSAR NvM Block的Native、Redundant和Dataset有什么区别?
10. AutoSAR,在多核汽车MCU中如何运行
11. AUTOSAR架构中的Configurator
12. AUTOSAR中的Fee
5.MCAL应用配置
1.ADC模块的配置
2.MCU模块的配置
3.PWM模块的配置
 
 
AutoSAR,在多核汽车MCU中如何运行
作者:JokerCK   来源:芯小二的下午茶
1070 次浏览
3次  

小二之前只开发过异构双核的芯片,各跑各的软件(比如各自运行一套FreeRTOS,反正组件裁剪下也不大),针对类似Stellar,AURIX这样的同构多核的软件不了解;

比如针对AutoSAR,在AURIX 三核处理器上,上如何运行? 看到CSDN上JokerCK的文章,觉得好像懂了,记录如下,水平有限,欢迎指正

阅读前,一些说明:

  • RPC,远程过程调用(Remote Procedure Call),一般是核间通信用
  • SWC即Software Component缩写,一般位于AUTOSAR架构的Application层
  • AUTOSAR分四层:Application、RTE(RunTime Environment,运行环境)、BSW(Basic Software,基础软件)和MCAL(MicroController Abstration Layer,微处理器抽象层 )

多核架构-基于AUTOSAR 4.3

AUTOSAR 4.3中定义了如下多核架构,基于这份架构,Application SWC 可以按照需求分到不同的核上,但是可以看到绝大多数的BSW Module 都在一个核上,部分BSW Module会在两个核上都存在实例

RTE横跨多核之间,为SWC与BSW Module之间提供Mapping。这个Mapping分为两种,一种是这个BSW Module提供了在对应核上的Satellite时,另一种是没有Staellite,如下图:

基本概念介绍

AUTOSAR描述了关于跨核/Partition调用服务的三种方式,一种就是直接,通过RPC(Remote Procee Call),这种方式下RTE可能会替你生成一系列的保护措施,比如SpinLock;第二种就是BSW Satellite,第三种就是Proxy,他主要是通过将直接的跨核C/S调用转成了资源消耗更少的S/R接口调用,如下图:

RPC没有固定的机制,如上述提到的SpinLock就是其中一种,但是无论哪种机制,其为了解决数据一致性所带来的额外开销都是比较大的。所以Proxy以及Statellite机制的目的就是为了提高在所有的核上对BSW Module的基本服务的高效的访问。

也就是说,利用Proxy或者Satellite机制之后,你就不需要像以前为了性能考虑而将需要使用特定BSW Module的服务的SWC,一定与这个BSW Module放在一个核,为设计带来了灵活性。当然,即使是使用了Proxy或者Satellite,仍然会有一定的资源开销,但是这相比与直接的RPC来说,都微乎其微。

使用Satellite在多核中主要有如下两个好处:

1. (improved efficiency)RTE不再需要生成RPC机制;

2. 因为Statellite也是BSW Module的一部分,他承担了一部分的工作,很显然这会带来性能提升,因为调用方所在的核也会执行一部分的任务,即分担了主核的一些工作。

AUTOSAR WdgM, Dem, EcuM, Det 都提供了Satellite机制。

简单说,Proxy就是用更轻量级的S/R接口取代了耗时的跨核的C/S调用(很显然,跨核C/S直接调用,调用方要等被调用方执行完成),最终实际的操作肯定还是C/S函数,但是这已经由原来的跨核变成了同一个核内由Proxy去直接调用BSW服务(参考上图),显然更好。

比较常见的有Com-Proxy和NVM-Proxy,其中Com-Proxy的Tx要注意要放到Com_MainFunctionTx之前:

术语

Core Types

多核架构中有Master Core和Slave Core之分,这是针对处理器而言的,如Tc27x系列,Core0是主核,但是AUTOSAR又有个概念叫做BSW Core,即绝大多数的BSW 模块都Mapping在BSW Core上。BSW Core可以是Master Core也可以是其他的Slave Core之一。

Partition

AUTOSAR中,Partition指的是一组SWC,BSW Module(Satellite),Task的合集,具体体现就是某个OS Application。Partition有等级划分,从QM到ASILD,对应MPU的第几个Set。需要注意一点,OS Application也有Trusted和Non-Trusted之分,但是这根ASIL等级无关,QM的Partition也可以是Trusted的。

 



您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



1070 次浏览
3次