汽车标定技术(八)--MPC57xx是如何支持标定的页切换

目录

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 = a,a = b,t一直保存,用于从RP切换到WP。

        但这问题就来了,一旦WP很大,例如32K,copy的过程会比较耗费资源,且速度很慢,所以有些供应商页切换基本就没有做,毕竟上位机切到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机制的基本原理。 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

高防CDN与高防服务器:谁更胜一筹?

在当今数字化世界中,网络安全对于保护网站和应用程序至关重要。在这一背景下,高防CDN和高防服务器是两种流行的解决方案,用于应对不同类型的网络攻击。本文将分析高防CDN是否能够替代高防服务器,以及它们各自的优势和限制。 高防C…

海思SD3403/SS928开发板 开发记录二: 设置网络 telnet连接开发板

1.设置网络 设置桥接网络 并修改虚拟机IP网段 问题1.参照前一篇博客 2.ping 测试 主机 虚拟机 板端 相互通信 3.telnet 登录板端

《泰山众筹火爆全网,小额投资也能成就泰山伟业》

众筹模式好做吗?我们可以看到电商行业内最先吃螃蟹的那几个众筹平台结局都不大体面。不是平台操盘手被抓,就是平台崩盘,总之,传统的众筹卖货模式的风险性已经深植人心。 众筹卖货真就那么难玩吗?其实并非如此&#xff…

RFID电力资产全周期智能化管理应用解决方案

电力行业需求 国家电网提出了建设“泛在电力物联网”的计划,旨在利用现代信息技术和先进通信技术,实现电力系统各环节的万物互联,构建一个具备全面感知、高效处理和便捷灵活特征的智慧服务系统,其中,重点方向之一是围…

【数据结构】链表经典OJ题,常见几类题型(一)

目录 题型一:反转单链表思路解析OJ题实例解题代码 题型二:快慢指针思路解析OJ题实例解题代码 两类题型的结合 题型一:反转单链表 思路解析 反转一个链表主要是想让第一个节点指向NULL,第二个节点指向第一个,以此类推。…

电影《二手杰作》观后感

上周看了电影《二手杰作》,在看电影的时候,自己感觉其实多少有些文艺范,或者有些尴尬的,但是在电影里还好,不过整个故事看下来,多少有点代入感,不多但还是有点。 故事情节,比较简单&#xff0c…

一文带您了解云渲染

很多刚刚接触云渲染的网友可能还不太了解云渲染,不知道云渲染是什么,不知道如何选择云渲染,不知道云渲染怎么收费,今天小编归纳总结了一些网友比较关心的问题,在本文中一一为大家解答。 云渲染是什么? 云…

kubectl 资源管理命令-陈述式

目录 一、kubectl陈述式资源管理: 二、kubectl陈述式对象管理: 1.基础命令使用: 1.1 帮助手册: 1.2 查看版本信息: ​编辑 1.3 查看资源对象简写: 1.4 查看集群信息: 1.5 配置kubectl自动补全: 1.6 node节点查看日志…

南昌大学漏洞报送证书

获取来源:edusrc(教育漏洞报告平台) url:https://src.sjtu.edu.cn/ 兑换价格:20金币 获取条件:南昌大学任意中危或以上级别漏洞

计讯物联高精度GNSS接收机:担当小型水库大坝安全监测解决方案的“护航者”

应用背景 水库大坝作为水利工程建筑物,承担着灌溉、发电、供水、生态等重任。一旦水库大坝发生安全事故,后果将不堪设想。因此,水库大坝的安全监测对保障水利工程顺利运行具有重要意义。 计讯物联作为水利行业专家型企业,多年来…

vxe-table表格校验失败后保持可以编辑状态

vxe-table表格校验失败后保持可以编辑状态 鼠标移出后可编辑状态消失 在edit-config设置为 autoClear: false 鼠标移出继续保持可编辑状态 <vxe-grid :edit-config"{trigger: dblclick, mode: row, showStatus: true, autoClear: false,activeMethod: activeRowMethod…

win10语言切换调整为像win7一样,设置纯英文键盘切换,使用ctrol+shift切换键盘

文章目录 引入键盘布局说明安装美式键盘去掉微软键盘&#xff0c;修改布局切换快捷键最终效果 引入 我们在玩游戏或者写代码的时候&#xff0c;常常需要使用shift键&#xff0c;而输入法的shift键常常是中英切换按键&#xff0c;这就让人非常不爽了&#xff0c;这里仿照在win7…

Leangoo敏捷工具管理轻量级项目群

Leangoo领歌是一款永久免费的专业的敏捷开发管理工具&#xff0c;提供端到端敏捷研发管理解决方案&#xff0c;涵盖敏捷需求管理、任务协同、进展跟踪、统计度量等。 
 Leangoo领歌上手快、实施成本低&#xff0c;可帮助企业快速落地敏捷&#xff0c;提质增效、缩短周期、加速…

kubectl声明式资源管理命令

一、声明式资源管理介绍&#xff1a; 适合于对资源的修改操作声明式资源管理方法依赖于资源配置清单文件对资源进行管理资源配置清单文件有两种格式&#xff1a;yaml&#xff08;人性化&#xff0c;易读&#xff09;&#xff0c;json&#xff08;易于api接口解析&#xff09;对…

app自动化测试——capability 配置参数解析

一、Capability 简介 功能&#xff1a;配置 Appium 会话&#xff0c;告诉 Appium 服务器需要自动化的平台的应用程序 形式&#xff1a;键值对的集合&#xff0c;键对应设置的名称&#xff0c;值对应设置的值 主要分为三部分 公共部分 ios 部分 android 部分 二、Session Appi…

计算机毕业设计基于springboot+java+vue的健身房课程预约信息网站

运行环境 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven 项目介绍 本健身网…

挑战100天 AI In LeetCode Day08(热题+面试经典150题)

挑战100天 AI In LeetCode Day08&#xff08;热题面试经典150题&#xff09; 一、LeetCode介绍二、LeetCode 热题 HOT 100-102.1 题目2.2 题解 三、面试经典 150 题-103.1 题目3.2 题解 一、LeetCode介绍 LeetCode是一个在线编程网站&#xff0c;提供各种算法和数据结构的题目&…

苹果转移供应链,促中国手机和中国制造更紧密合作,加速技术升级

随着苹果力推富士康等奔赴印度和越南设厂&#xff0c;引发的另一大反应恐怕是它所没有想到的&#xff0c;那就是中国手机和中国制造产业链的合作更加紧密了&#xff0c;中国制造产业链的技术水平反而因此得到提升。 一、产业链技术升级依赖苹果 对于制造产业链来说&#xff0c;…

【数组】【快慢指针】Leetcode 27 移除元素

【数组】【快慢指针】Leetcode 27 移除元素 解法1 ---------------&#x1f388;&#x1f388;题目链接&#x1f388;&#x1f388;------------------- 解法1 时间复杂度O(N) 空间复杂度O(1) class Solution {public int removeElement(int[] nums, int val) {// 快慢指针…

Python(四)字符串

程序员的公众号&#xff1a;源1024&#xff0c;获取更多资料&#xff0c;无加密无套路&#xff01; 最近整理了一波电子书籍资料&#xff0c;包含《Effective Java中文版 第2版》《深入JAVA虚拟机》&#xff0c;《重构改善既有代码设计》&#xff0c;《MySQL高性能-第3版》&…