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

前言

在整车项目开发过程中,样车阶段会存在着大量时间的标定过程,以提升车辆的性能。主流的标定协议-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公众号,《汽车电子学习笔记》感兴趣可以关注一下~~~文章都会同步更新~

  • 14
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赞哥哥s

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值