MDK使用SRecord对镜像自动添加校验值并转bin文件

描述

本文转自公众号,欢迎关注
https://mp.weixin.qq.com/s/uzaGLFTDBAn8wyR84yaiIw

1. 下载软件

1.1 下载SRecord

进入网址https://sourceforge.net/projects/srecord/,下载最新版本SRecord。

MDK

1.2 解压压缩包,复制下面的exe文件到工程下

与uvprojx工程文件保持同一目录

MDK

2. 配置MDK

2.1 编辑脚本

1)新建名字为crchex2bin的txt文件,改后缀名为bat。

MDK

2)在crchex2bin.bat下添加以下内容

copy .XXXX_XXXoutputXXXX_XXX.hex .
.srec_cat .XXXX_XXX.hex -intel -crop 0x08000000 0x0803FFFC -fill 0x00 0x08000000 0x0803FFFC -crc32-l-e 0x0803FFFC -o .XXXX_XXX_Check.hex -intel -obs=16
.srec_cat .XXXX_XXX.hex -intel -offset -0x8000000 -o .XXXX_XXX.bin -binary
.srec_cat .XXXX_XXX_Check.hex -intel -offset -0x8000000 -o .XXXX_XXX_Check.bin -binary

其中copy .XXXX_XXXoutputXXXX_XXX.hex .表示将optput下生成的hex文件复制到工程所在目录。

.srec_cat .XXXX_XXX.hex -intel -crop 0x08000000 0x0803FFFC -fill 0x00 0x08000000 0x0803FFFC -crc32-l-e 0x0803FFFC -o .XXXX_XXX_Check.hex -intel -obs=16

表示将intel格式的XXXX_XXX.hex的地址 0x08000000 到0x0803FFFC处的值复制到新的文件XXXX_XXX_Check.hex的 0x08000000 到0x0803FFFC地址处,不足处填充0x00。并且对原始数据的地址 0x08000000 到0x0803FFFC处的值计算小端模式crc32值,填充在新的文件的0x0803FFFC地址处。新的文件的格式也是intel,并且一行记录16个字节的数据。

.srec_cat .XXXX_XXX.hex -intel -offset -0x8000000 -o .XXXX_XXX.bin -binary

表示将hex文件转换成bin文件,地址偏移-0x08000000,即hex文件的地址0x08000000,对应到bin文件的地址0。

.srec_cat .XXXX_XXX_Check.hex -intel -offset -0x8000000 -o .XXXX_XXX_Check.bin -binary

同上

2.2 使能配置生成hex文件

MDK

2.3 配置添加用户脚本

MDK

3. 生成和验证

3.1自动生成

编译后会自动调用脚本添加crc值和hex转bin文件。

生成文件如下:

MDK

3.2 校验

使用文本比较工具Araxis Merge对比TY38_EPS_Check.hex和TY38_EPS.hex,发现在后面填充了0x00,并且在最后填充了CRC值0xA055E2F8

MDK

使用二进制编辑工具010 Editor 对比XXXX_XXX_Check.bin和XXXX_XXX.bin,发现在后面填充了0x00,并且在最后填充了CRC值0xA055E2F8

MDK

在010 Editor中将TY38_EPS_Check.bin的最后四字节删除

MDK

另存为

tocheck.bin。

打开网页 http://www.atool9.com/file_hash.php

将tocheck.bin文件拖放到网页里,只勾选CRC32

MDK

查看crc值为0xA055E2F8。与自动计算的一致。

4. 参考

Keil官方文档《an277.pdf》

二进制编辑工具《010 Editor》

文本比较工具《Araxis Merge》

CRC在线工具《http://www.atool9.com/file_hash.php》

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分