0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

嵌入式USB开发 来源:嵌入式USB开发 作者:嵌入式USB开发 2023-09-19 14:15 次阅读

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

1. 下载软件

1.1 下载SRecord

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

图片

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

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

图片

2. 配置MDK

2.1 编辑脚本

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

图片

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文件

图片

2.3 配置添加用户脚本

图片

3. 生成和验证

3.1自动生成

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

生成文件如下:

图片

3.2 校验

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

图片

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

图片

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

图片

另存为

tocheck.bin。

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

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

图片

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

4. 参考

Keil官方文档《an277.pdf》

二进制编辑工具《010 Editor》

文本比较工具《Araxis Merge》

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

审核编辑:汤梓红

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

    关注

    4982

    文章

    18281

    浏览量

    288459
  • 文件
    +关注

    关注

    1

    文章

    540

    浏览量

    24402
  • MDK
    MDK
    +关注

    关注

    4

    文章

    208

    浏览量

    31771
  • 脚本
    +关注

    关注

    1

    文章

    372

    浏览量

    14635
收藏 人收藏

    评论

    相关推荐

    MDK生成bin文件的步骤及方法

    MDK生成bin文件的步骤及方法用MDK 生成bin 文件1用
    发表于 08-02 10:55

    .bin文件怎么打开,.bin是什么文件

    先确定BIN文件镜像,再按下列2个方法可找开文件,1: 下载后如扩展名为BIN,MDF,ISO等,必须使用DAEMON TOOLS等虚拟光
    发表于 01-26 17:57

    MDk如何生成bin文件小结

    MDk如何生成bin文件,见附件
    发表于 01-18 15:56

    CH573生成的bin文件能否自动计算校验且覆盖文件最后几个字节?

    生成的bin文件能否自动计算校验且覆盖文件最后几个字节?
    发表于 07-28 07:09

    MDK怎么设置输出BIN文件

    MDK怎么设置输出BIN文件
    发表于 10-12 07:21

    MDK生成bin格式的可执行文件

    MDK 生成bin 文件1用MDK 生成bin 文件Embest 徐良平在RV
    发表于 08-02 10:52 71次下载

    MDk如何生成bin文件

    介绍了MDk生成bin文件的详细过程。
    发表于 11-02 17:20 1次下载

    如何在MDk生成bin格式的文件

    更习惯于使用*.bin格式的文件,甚至有些嵌入式软件开发者已经拥有了*.bin格式文件的调试或烧写工具。为了充分地利用现有的工具,同时发挥Realview
    发表于 05-16 17:22 4次下载
    如何在<b class='flag-5'>MDk</b>生成<b class='flag-5'>bin</b>格式的<b class='flag-5'>文件</b>

    MDK -ARM如何生产Bin文件

    MDK-ARM如何生产Bin文件
    的头像 发表于 03-14 10:59 2876次阅读
    <b class='flag-5'>MDK</b> -ARM如何生产<b class='flag-5'>Bin</b><b class='flag-5'>文件</b>

    支持Hex、Bin、Motorola S文件的开源库使用

    本文为大家分享一个支持Hex、Bin、Motorola S文件镜像格式之间进行转换的库:BIN2HS。 概述 BIN2HS是支持Intel
    的头像 发表于 08-18 09:39 1735次阅读

    成功实现MDK自动生成hex文件的crc值并附加到hex文件末尾(bin也支持),然后跟STM32的硬件CRC计算值做比较

    成功实现MDK自动生成hex文件的crc值并附加到hex文件末尾(bin也支持),然后跟STM32的硬件CRC计算值做比较
    发表于 11-20 13:36 27次下载
    成功实现<b class='flag-5'>MDK</b><b class='flag-5'>自动</b>生成hex<b class='flag-5'>文件</b>的crc值并附加到hex<b class='flag-5'>文件</b>末尾(<b class='flag-5'>bin</b>也支持),然后跟STM32的硬件CRC计算值做比较

    一种Keil MDK生成BIN文件的简易方法。

    一种Keil MDK生成BIN文件的简易方法。
    发表于 01-13 10:18 2次下载

    MDK中如何生成bin格式的文件

    更习惯于使用*.bin格式的文件,甚至有些嵌入式软件开发者已经拥有了*.bin格式文件的调试或烧写工具。为了充分地利用现有的工具,同时发挥Realview
    发表于 09-29 16:29 0次下载

    MCUXpresso IDE下生成镜像文件的方法及其与IAR,MDK差异

    MCUXpresso IDE下生成镜像文件的方法及其与IAR,MDK差异
    的头像 发表于 09-28 17:05 574次阅读
    MCUXpresso IDE下生成<b class='flag-5'>镜像文件</b>的方法及其与IAR,<b class='flag-5'>MDK</b>差异

    keil如何生成bin文件

    Keil是一种集成开发环境(IDE),专为ARM架构的嵌入式系统开发而设计。在Keil中生成bin文件是将代码编译并转换为可执行文件的过程。本文将详细介绍Keil生成
    的头像 发表于 12-15 13:43 3219次阅读