目录
[2.1 P1X 标定功能](#2.1 P1X 标定功能)
[2.2 MPC57xx标定功能](#2.2 MPC57xx标定功能)
[2.3 TC3xx标定功能](#2.3 TC3xx标定功能)
[3.1 英飞凌CPU子系统猜想](#3.1 英飞凌CPU子系统猜想)
[3.2 ARM内核CPU子系统分析](#3.2 ARM内核CPU子系统分析)
1.问题引入
在分析瑞萨RH850-P1x系列、NXP S32K3系列和英飞凌TC3xx系列对标定测量功能的实现时,发现了一个很有意思的事情:仅TC3xx明目张胆地将overlay写了出来,
- P1x仅支持ED片子的标定功能;
- S32K3系列没有找到相关描述(MPC57xx倒是有相关remap功能支持标定);
- TC3xx明确写了有Overlay功能支持标定测量功能。
这就很奇妙了,明白overlay的原理之后,其实从使用者来说芯片要实现这个功能应该不难,但为啥NXP和瑞萨就不做呢?要知道标定测量(页切换)这个业务在ECU研发阶段还是非常重要的。
出于好奇,我详细去看了这几家实现方式。
2.功能概述
2.1 P1X 标定功能
瑞萨的这个标定功能仅在ED片子上面提供,该功能将Code Flash的部分内容(标定量等)搬到Emulation RAM,并启用该ERAM。PE去访问Flash实际上访问的是ERAM,这样就可以动态修改标定数据。
具体原理如下:
那就是说,如果我用PD的芯片,还是得走最原始XCP开发方法,即一块Flash区域对应一块RAM区域,使用链接文件修改标定量存储和加载地址,从而达到标定目的;使用RAM块替换的方式来实现页切换功能。
2.2 MPC57xx标定功能
MPC57xx这款芯片以前聊过,具体可见 汽车标定技术(八)--MPC57xx是如何支持标定的页切换-CSDN博客
值得注意的是,它也是在Flash/Sram controller这一层级进行的切换,并且没有使用Overlay这个字眼,采用Remap这种说法。
2.3 TC3xx标定功能
那么到了英飞凌TC3xx这块片子里呢,它很自豪地说了Overlay可以在程序运行时修改应用程序的存储在Flash中的测试数据和标定数据,
并且相比其他家的芯片,它可以重映射的区域有很多,例如Local RAM、Emulation Memory、CPU里的DPSR\PSPR等等。具体如下:
3.问题分析
问题就来了,为什么英飞凌可以做到这么多源地址和目标地址的overlay,其他家就有点困难呢?
我们先从标定测量的本质说起。
实际上,我理解的汽车控制器中标定测量功能本质上是对内部memory地址空间的访问,例如标定就是修改目标标定量在RAM里的数据、测量就是获取目标观测量在RAM的数据。
而谁来执行访问的动作?当然是CPU了。
所以我从CPU角度出发,来看看各家有什么不同。
3.1 英飞凌CPU子系统猜想
首先来看明确提供Overlay机制的英飞凌TC3xx,它的内核是TC1.6.2P TriCore,在芯片手册 CPU子系统章节5.3.9小节,我发现了Overlay机制的相关描述。就是说英飞凌上来就抓住了核心问题--从CPU的视角来处理对地址的访问。
值得一提的是,英飞凌不管是cacheable的地址还是non-cacheable的地址,均可以实现overlay功能,那么我可以大胆猜测一下,在TriCore这个核里面对于Flash访问的接口应该是一个双向接口,并且overlay模块是在发起访问的汇聚点,简易示例如下:
3.2 ARM内核CPU子系统分析
瑞萨由于是自研的RISC内核,并且没有CPU的overlay机制,这里就暂时不分析了,后面找到详细资料再说。
要分析的目前市面上卷的很厉害的国产芯片,是如何来实现overlay机制的。
要知道,目前有NXP背景的那几家芯片,基本都还是基于Cortex-M,稍微高端一点的是Cortex-R52;那么ARM内核的芯片可以做到像英飞凌这么丝滑的overlay机制吗?
我们还是从CPU结构分析,以M33为例,其处理器模型如下:
可以看到, 内核包含两个AHB接口与NIC总线连接,其中:
- C-AHB:Code AHB
- S-AHB:System AHB
在C-AHB下面做overlay模块,是否就可以达到目的呢?
那么继续来看最近很火的R52,其处理器模型如下:
可以看到,R52对Flash的访问有单独的Flash interface直连,对于RAM的访问需要通过AXIM接口。其中Flash interface为一个只读接口,那就意味着 store指令就不能从这个口子发出来了,overlay机制只能通过AXIM这条线出来,因此对于R52来说,仅有一个地址(即AXIM对应的Flash地址)能够支持overlay。
但是,我们再看图的右边,方框里赫然写的RAM Calibration。并且通过图上,我们可以看到,通过CoreSight相关寄存器,可以实现emulation和calibration。
这是不是和overlay机制差不多呢?目前我还没有找到相应资料佐证,看一下Stella怎么做的吧,哈哈
4.小结
以上内容,我们从CPU视角分析了主流汽车芯片对于标定测量功能的支持程度,其实很容易发现一些端倪,有背景或者合作方的芯片厂在设计芯片时会充分考虑汽车ECU从开发到量产再到售后所有环节,并且都有不同的硬件适配,只是我们应用人员在使用时没有发现而已。