汽车标定技术(十)--从CPU角度观察Overlay实现原理

目录

1.问题引入

2.功能概述

2.1 P1X 标定功能 

2.2 MPC57xx标定功能

2.3 TC3xx标定功能 

3.问题分析

3.1 英飞凌CPU子系统猜想

 3.2 ARM内核CPU子系统分析

4.小结


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从开发到量产再到售后所有环节,并且都有不同的硬件适配,只是我们应用人员在使用时没有发现而已。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/183556.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智能化质量控制,三坐标尺寸SPC管理系统引领制造新潮流!

在制造业的浪潮中,提升产品质量一直是企业不懈追求的目标。为了更好地适应市场需求、提高生产效益,我们自豪地介绍全新的三坐标尺寸SPC(统计过程控制)管理系统,为您的企业带来智能、高效的质量管理体验,助力…

顶级大厂Quora如何优化数据库性能?

Quora 的流量涉及大量阅读而非写入,一直致力于优化读和数据量而非写。 0 数据库负载的主要部分 读取数据量写入 1 优化读取 1.1 不同类型的读需要不同优化 ① 复杂查询,如连接、聚合等 在查询计数已成为问题的情况下,它们在另一个表中构…

TikTok革新挑战者:全球小众创作者的崛起

随着数字娱乐的快速发展,TikTok以其独特的短视频形式和开放的创作平台,成为全球范围内小众创作者崛起的推动者。本文将深入剖析TikTok在这一领域的革新,以及全球范围内小众创作者如何通过这一平台崭露头角。 TikTok:小众创作者的乐…

LeetCode刷题---斐波那契数列模型

顾得泉:个人主页 个人专栏:《Linux操作系统》 《C/C》 《LeedCode刷题》 键盘敲烂,年薪百万! 一、第N个泰波那契数 题目链接:1137. 第 N 个泰波那契数 题目描述 泰波那契序列Tn定义如下: T00,T11,T2 1,且在n&g…

MySQL主从复制架构

MySQL主从复制架构 一、MySQL集群概述 ##1、集群的主要类型 高可用集群(High Available Cluster,HA Cluster) 高可用集群是指通过特殊的软件把独立的服务器连接起来,组成一个能够提供故障切换(Fail Over&#xff09…

高项备考葵花宝典-项目范围管理输入、输出、工具和技术

项目范围管理包括确保项目“做”且“只做”所需的全部工作(即不能少做,也不能多做,如果多做,就要消耗团队额外的时间和资源,并且无法被认可),以成功完成项目。项目范围管理主要在于定义和控制哪…

Angular项目中如何管理常量?

在Angular项目中,你可以使用不同的方式来管理常量。以下是一些常见的方法: 1、常量文件: 创建一个单独的 TypeScript 文件,其中包含你的常量。例如,创建一个名为 constants.ts 的文件,并在其中定义你的常量…

HTTP常见响应码

HTTP(Hypertext Transfer Protocol)是用于在客户端和服务器之间传输资源的协议。HTTP响应码(HTTP status code)用来表示服务器对请求的处理结果。以下是常见的HTTP响应码及其概要: 1. 响应码大类: 主要分…

高效办公:如何使用视频剪辑工具批量转码,mp4视频到TS视频

在视频处理过程中,转码是一项常见的任务。将MP4视频转换为TS视频可以提供许多优势,包括更好的兼容性、更广泛的设备和平台支持以及更高的视频质量。然而,手动转码大量视频文件可能会非常耗时且效率低下。为了实现高效办公,可以使用…

BTCPay Server:免费、安全、开源的比特币支付处理器 | 开源日报 No.90

MunGell/awesome-for-beginners Stars: 58.0k License: NOASSERTION 这个项目是一个收集开源项目的列表,旨在帮助初学者找到可以贡献代码的机会。该列表按编程语言分类,并列出了每个项目以及其标签 (如 “good-first-issue”、“beginner” 等)。主要功…

ARM预取侧信道(Prefetcher Side Channels)攻击与防御

目录 一、预取侧信道简介 1.1 背景:预取分类 二、Arm核会受到影响吗? 2.1 先进的预取器

TikTok区块链实践:数字社交媒体的去中心化未来

随着区块链技术的日渐成熟,数字社交媒体行业也在探索如何整合区块链,以推动去中心化发展。在这一潮流中,TikTok作为全球领先的短视频平台,积极实践区块链技术,探索数字社交媒体的未来。本文将深入探讨TikTok的区块链实…

Spring Boot项目Service类单元测试自动生成

在Spring Boot项目中,对Service类进行单元测试对于开发工程师而言具有重大意义和作用: 验证业务逻辑的正确性和完整性 核心业务逻辑的准确实现:Service类通常包含核心业务逻辑。单元测试确保这些逻辑被正确实现,满足业务需求。处…

P8A012-A016组策略安全

账户策略 【预备知识】 组策略(Group Policy)是Microsoft Windows系统管理员为用户和计算机定义并控制程序、网络资源及操作系统行为的主要工具。通过使用组策略可以设置各种软件、计算机和用户策略。 【实验步骤】 网络拓扑:server2008A…

用Java制作简易版的王者荣耀

第一步是创建项目 项目名自拟 第二部创建个包名 来规范class 创建类 GameFrame 运行类 package com.sxt;import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import j…

vivado综合分析与收敛技巧2

1、分解深层存储器配置 , 实现功耗与性能平衡 在深层存储器配置中 , 可使用综合属性 RAM_DECOMP 实现更好的存储器分解并降低功耗。此属性可在 RTL 中设置。将RAM_DECOMP 属性应用于存储器时 , 存储器是在较宽的原语配置中设置的 &#x…

JRT实现缓存协议

上一篇介绍的借助ORM的增、删、改和DolerGet方法,ORM可以很精准的知道热点数据做内存缓存。那么就有一个问题存在,即部署了多个站点时候,如果用户在一个Web里修改数据了,那么其他Web的ORM是不知道这个变化的,其他Web还…

rpc服务、微服务架构、分布式应用是什么

RPC(Remote Procedure Call)是远程过程调用的简称,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。简单来说,就是调用远程计算机上的函数或方法,就像调用本地的函数或方法一…

webpack如何处理浏览器的样式兼容问题postcss

一、准备工作 css/index.css添加样式 .word {color: red;user-select: none; } 为了兼容不同的浏览器我们需要添加前缀比如: -webkit-user-select: none; 这个工作可以通过postcss的插件postcss-preset-env处理 二、安装依赖 pnpm i -D postcss postcss-loader…

接口测试用例编写和接口测试模板

一、简介 接口测试区别于传统意义上的系统测试,下面介绍接口测试用例和接口测试报告。 二、接口测试用例模板 功能测试用例最重要的两个因素是测试步骤和预期结果,接口测试属于功能测试,所以同理。接口测试的步骤中,最重要的是将…