文章目录

  • 前言
  • 配置CANape工程
    • 配置Memory Segments
    • 配置Memory Flash
  • 生成二进制文件
    • 导出二进制文件并保存为par文件
    • 通过par文件导入到二进制文件中
  • 对比二进制文件
  • 总结

前言

在整车项目开发过程中,样车阶段会存在着大量时间的标定过程,以提升车辆的性能。主流的标定协议-XCP协议,通过导入A2L到标定软件(CANape,INCAd等),实现控制器参数的在线标定。而对于控制器来说,标定量一般存放在flash中,加载时从flash地址加载,运行时在ram中读取,这样便可以实现定义时由const属性修饰,标定时可以修改标定量值。这样又会产生另外一个问题,由于标定量运行时是在ram地址,所以标定完后如果下电的话,标定量并不会更新到flash中,再次上电的话仍然会是标定之前的值。
基于此,一种方案是将标定过的数据存储在特定的文件中,canape的如.par文件,下次再标定的时候可以导入,但是只在标定过程中有效。另一种方案即本文描述的方案,就是将标定后的数据写入flash中,生成hex文件或s19文件,再刷写到控制器中。(还有一种通过XCP-下载服务,这个不在本文描述范围)

配置CANape工程

一般标定量存储在固定的Flash区域中,在canape中需要进行相关配置

配置Memory Segments

选择Device Configuration,创建与标定量对应的存储段(主要是flash起始地址和大小)。勾选Cache对应的选项

配置Memory Flash

配置对应的Flash Sectors,与标定量区域一致


配置好上述Flash区域后,点击保存。

生成二进制文件

点击Device,选择Flash中的Save parameter set and merge to binary file

有两种方式,一种是导出当前工程的标定数据到par和二进制文件中,一种是从par中导入标定数据到二进制文件中。

导出二进制文件并保存为par文件


选择对应的原可执行文件,目标导出的hex/srec文件,保存到的.par文件。确认后即可生成目标的二进制文件。

通过par文件导入到二进制文件中

和上面的界面一样,只是选择的par文件为之前已经存在的par文件(包含需要写入flash的标定数据)。确认后即可生成目标的二进制文件

对比二进制文件

测试修改过参数的二进制文件和原来的二进制文件对比。

修改的参数在新的二进制文件中已经更改过了。

将这个二进制文件刷写到ECU中即可实现标定量flash更新,且不需要对代码进行编译。

总结

通过这种生成二进制文件的方式,在样车调试过程中,可以实现快速更新参数到flash中,避免了重新编译链接的过程。

若你觉得本文对你有帮助,欢迎点赞,关注,收藏,转发~~~

你的鼓励是对小弟的最大支持~~~

建了一个WX公众号,《汽车电子学习笔记》感兴趣可以关注一下~~~文章都会同步更新~

CANape导出标定数据Hex/S19等二进制文件相关推荐

  1. php怎么保存hex数据,php脚本l导出mysq的blob格式数据-hex和unhex的用法

    前言 之前我们介绍过使用PHP脚本导出sql语句到测试服中的流程和注意点, 之前有个问题还没有解决的,就是mysql中blob类型数据是导不成功的. 这次找到了解决方法,这里记录一下. 什么是blob ...

  2. XCP实战系列介绍06-CANape标定及标定后hex生成操作指导

    本文框架 1.概述 2. CANape工程建立 3. XCP标定及后处理介绍 3.1 CANape标定 3.2 标定数据保存 3.3保存标定结果到原hex 3.4 将标定结果copy到hex中 3.5 ...

  3. 基于Excel的标定数据(DCM文件)查询及核对工具

    一.INCA软件是当前主流标定开发软件之一,尤其在动力系统控制器的标定中应用非常广泛. 二.通常标定工程师负责某个/多个软件模块的标定,在完成该模块标定工作后提交该标定数据(DCM文件),而后集成工程 ...

  4. 集合高德地图搜索--导出Excel数据 工具

    第一个是高德地图接口返回的数据对象的domain类 @Getter @Setter public class DataClass {private String name; //名称private S ...

  5. 要matlab标定数据做双目相机矫正OpenCV C++

    双目相机矫正 系列文章来了,C/CPP实现双目矫正(不使用OpenCV)及矫正源码解析正在更新中. 开始本文内容 标定步骤: matlab标定较为准确,命令行中输入stereoCameraCalibr ...

  6. 修复hex/s19文件中的校验和

    一.背景 在一些开发中可能需要手动修改烧写文件中的一些数据,由于s19文件和hex文件中都有checksum校验和,如果修改了其中的数据内容,则需要手动同步修改校验和. 1.文件格式 S-record ...

  7. Oracle数据表导入导出_数据迁移用

    0.背景:突然接到居家办公的通知,工作用数据全部在内网,需要全部拷出带走,最大的单个表3.7G左右.根据往常经验将Oracle库中表导出为xlsx(方便与同事沟通使用),发现效率太低,且受制于数据量太 ...

  8. 痞子衡嵌入式:ARM Cortex-M文件那些事(8)- 镜像文件(.bin/.hex/.s19)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式开发里的image文件(.bin, .hex, .s19). 今天这节课是痞子衡<ARM Cortex-M文件那些事>主 ...

  9. luckySheet+POI+EasyExcel实现在线excel模版的导出和数据填充

    luckySheet+POI+EasyExcel实现在线excel模版的导出和数据填充 业务需求 关键字 luckySheet POI EasyExcel 代码实现 前端luckySheet配置的ex ...

最新文章

  1. 年薪2亿!51岁苏妈获「半导体诺贝尔奖」,MIT才女变身AMD女掌门
  2. 患者痛不欲生,但AI说:别给她开止疼药
  3. 安卓高手之路之图形系统(6)ListView继续
  4. 【机器学习】Apriori 算法进行关联分析和FP-growth算法
  5. nodejs返回下载文档,文档名称出现汉字出现乱码解决
  6. [转载] Java中日期格式转换
  7. 【原创】OllyDBG 入门系列(七)-汇编功能
  8. go 判断切片是否存在某元素_Golang基础之切片
  9. Python连接两个字符串并去除首尾重复子串
  10. dart map 转list_Dart 集合类型List Set Map循环forEach map where any every
  11. 关于performSelector调用和直接调用区别
  12. Noark入门之极速体验
  13. Spring操作数据库几十次后就JDBC begin transaction failed
  14. oracle使用max提升效率,小小小的问题------关于count(*) 和 max(rownum) 效率问题
  15. cypress初识--看完就可以写一个简单web自动化脚本了!
  16. CollectionUtils取交集,并集和差集
  17. 搭载网站的云服务器需要空间备案,网站空间要备案吗
  18. c++/c/java数据结构--队列
  19. DeFi 入门必备:你需要了解的 DeFi 重要词语
  20. 小程序点餐系统——首页

热门文章

  1. 浦江实验室全球招聘博士后人才!
  2. 镜像法计算变压器漏磁场(一)
  3. uni-app微信小程序生成自定义参数二维码,跳转小程序指定页面,获取参数;uni-app微信小程序获取二维码自定义参数;微信小程序生成动态参数二维码;uni-app微信小程序获取动态参数二维码;
  4. DB2中的type-2 connect
  5. mysql语言的学习
  6. HDFS核心进阶-namenode进阶
  7. 网络|基于Netty构建的高性能车辆网项目实现(一)
  8. access中本年度的四月一日_日漫中那些超美的名字,这些名字太让人一见钟情了...
  9. windows无法打开添加打印机_打印机无法打印是怎么回事 打印机无法打印的解决方法 - 台式电脑...
  10. 给Android应用开发小团队的十个建议