目录
1.知识背景
汽车行业ECU基本都具有FBL(flash boot loader)功能。FBL可以基于UDS协议实现刷写功能。很多OEM厂商都有OTA的需求,但是对于整车内部ECU来说,仍然是基于UDS协议实现刷写。但是往往会要求刷写文件具有特定格式。如吉利/沃尔沃采用VBF(volov binary format)格式,吉利提供了VBF生成工具。长城要求具有特殊hearer area等特殊格式的BIN文件。
这时候往往需要对IDE编译产生的S19、HEX、BIN等格式进行一些格式操作,已满足主机厂刷写文件要求。或方便集成项目APP。
本文介绍Vector Hex view命令行模式对BIN文件进行一些常规操作,如对齐、填充、CRC计算。
2.Hexview介绍
HexView可以打开各种二进制格式、如最常见SREC、HEX、BIN。打开界面如下。可以在界面中完成各种操作,如对其、填充、删除等。但是项目开发往往需要使用方便快捷方式快速转换至项目需要的格式,所有可以使用BAT批处理加hexview命令行方式进行脚本开发,一键生成项目需要个刷写文件格式。
3.Hexview命令介绍
例如有一个app.bin文件,基于这个文件需要做以下处理。hexview.exe替换为自己真实路径。
3.1对齐
为了方便Flash刷写,经常会对刷写内容进行对齐,如16字节对齐。可以在bat文件写入如下命令:
..\core\HexView\hexview.exe /s app.bin /AD:0xFF /AL:0x10 /xb -o app.bin
3.2合并两个BIN文件
一般项目都会有FBL和APP两个BIN文件,如把APP往后偏移0x1000然和合并FBL,可以使用下面命令合并两个文件。不同项目根据芯片Flash和APP划分,调整偏移参数。
..\core\HexView\hexview.exe /s /mt:ota.bin+app.bin;0x1000 /xb -o out.bin
如果需要截取APP一段地址参与Merge,可以使用下面的命令:
..\core\HexView\hexview.exe /s /mt:ota.bin+app.bin;0x1000:0x0-0x100 /xb -o out.bin
3.3计算特定区域CRC32并写入到指定地址
HexView Calculation of the CRC-32 according to IEEE, using the polynomial: 0x04C11DB7. The start value is 0xFFFFFFFF. The result is inverted.
..\core\HexView\hexview.exe /s out.bin /cs9:@0x02;0x08-0x20F /xb -o out.bin
本文仅起到抛砖引玉的目的,其他具体命令可以参看Hexview用户手册。
有刷写方面需要咨询,可以通过邮箱联系我。gsh1992@qq.com