云南工程建设投标网上报名网站,企业服务中心属于什么部门,中国建筑集团有限公司电话,西安搬家公司哪家服务好还实惠目录
1.页切换的概念
1.1 标定常量的理解
1.2 页切换
2.MPC57xx的Overlay模块
3.小结 1.页切换的概念 在汽车标定测量中#xff0c;有一个概念我想很多人都听过#xff0c;但是实际上在项目里没有用到过#xff0c;那就是今天要讲的页切换概念。在讲页切换的时候#…目录
1.页切换的概念
1.1 标定常量的理解
1.2 页切换
2.MPC57xx的Overlay模块
3.小结 1.页切换的概念 在汽车标定测量中有一个概念我想很多人都听过但是实际上在项目里没有用到过那就是今天要讲的页切换概念。在讲页切换的时候我们先来理解Flash和RAM中的标定参数。
1.1 标定常量的理解 在写代码时 通常我们对常量数据都会增加const类型如下
const uint8 calibration_1 10; 编译后calibration_1会存放在Flash的某个区域我们可以通过hex和map去地址找到。 但实际上标定参数对于ECU本身来说应该是常数但是对于标定人员来说它是可变的。如果标定人员直接通过map地址去修改值那就会直接跑飞如果通过擦除flash、写flash的方式进行标定一是速度很慢二是Flash不能按byte擦除。所以这就出现了在线标定的矛盾既要快还要方便。 有朋友可能会说那我用EEPROM或者EEPROM emulation来做呀也没问题成本上去了手撸Fee慢慢调bug也是可以的。 为此我们为了方便快速修改标定量如果能把标定量存放到Flash但加载到RAM运行意味着CPU每次都到RAM中去取标定量的值这个问题不久解决了吗
#pragma section cal_Ram
const volatile uint8 calibraion_1 10;链接文件修改为
.cal_ram:
{...
} WP_CAL AT RP_CAL 意味着存放在RP_CAL这个Section里实际运行在RAM因此编译出来的地址为RAM地址。 上电启动时把RP_CAL这里面的数据copy至WP_CAL即可。后面单独出一篇说一下不同链接文件、标识符对于标定量地址的影响
1.2 页切换 有了上述概念我们在标定测量系统中经常看到的WP/RP即Working Page和Reference Page在ECU对应的外设分别是RAM和Flash如下 通常ECU是去FLASH获取常数的数据。但对于应用程序将数据复制到RAM中以便工具对其进行标定。ECU可以在RAM和FLASH之间随时切换从而可以通过切换到安全的FLASH数据以随时纠正由于标定疏忽而可能出现的临界状态。 注意理解上面这句话这表示ECU或者说是CPU对于某一个标定参数的访问地址可以随时通过页切换的指令来进行切换。这就有点神奇了按理说一个常量经过链接文件编译出来出后的地址是固定的CPU也只会根据这个地址去获取数据那么这个页切换到底是如何做到的呢 我们换个思路既然CPU只会根据map文件定义的地址去获取标定数值页切换的时候就是保证Flash值和RAM值的来回切换这还不简单么实现a(RAM)\b(Flash)互换那就是 t aa bt一直保存用于从RP切换到WP。 但这问题就来了一旦WP很大例如32Kcopy的过程会比较耗费资源且速度很慢所以有些供应商页切换基本就没有做毕竟上位机切到RP的时候自动变灰嘛标不了哈哈哈但没法实现快速切到Flash参数。 所以我们就要来看看从芯片硬件层面有没有什么机制来快速实现切换呢答案是有的参考汽车标定技术(七)--英飞凌TC3xx_Overlay实现页切换-CSDN博客
2.MPC57xx的Overlay模块 除了英飞凌NXP的MPC57系列同样也实现了overlay但与英飞凌不一样的是NXP的overlay实现在Flash/SRAM controller这一层英飞凌在CPU这一层。我们具体来看。 首先是overlay系统框图 CPU 发出的读访问通过AXBS传入到SRAM或者Flash controller在标定期间可以通过修改controller的overlay寄存器来改变路径。 以CPU访问Flash某个常量为例路径为CPU - AXBS - FMC - Flash如果此时overlay功能打开那么路径就变为了 CPU-AXBS- FMC-SRC-SRAM。可以看到CPU的地址总线和数据总线路径仍然是朝Flash去的但在FMC这里被转到了SRAM。 那么通过这个机制就可以实现快速页切换在WP时打开overlay功能这是访问的是RAM可以随便进行修改切换到RP时关闭overlay功能这时候就访问Flash了同时upload到上位机显示的也是Flash里的值完美。伪代码如下
if (WP switchTarget)
{/* Enable Overlay */
}
else
{/* Disable Overlay */
}
3.小结 从上文我们了解到页切换的本质以及为什么要使用一个Flash和RAM对应的标定区域分析了MPC57xx是如何实现overlay机制的基本原理。