将两个HEX文件合并成一个HEX文件

将两个HEX文件合并成一个HEX文件,第1张

将两个HEX文件合并成一个HEX文件

文章目录
  • 将两个HEX文件合并成一个HEX文件
    • 系统环境
    • 1. 生成BootLoader和app的HEX文件
    • 2. 将两个HEX文件合并成一个HEX
    • 3. 利用J-LINK将文件烧录到mcu
    • 4. 其他小知识:在keil上设置默认编译生成bin文件

现在的mcu有很多场合需要iap升级,这就需要把BootLoader和app同时烧录的mcu中。


其中一种方法就是先烧录BootLoader文件,然后再用这个BootLoader来将app升级到mcu中,但是我们都知道这个升级是很慢的,对于量产的产品,这样的 *** 作不止费力还费时间。


其实有一种非常简单的方法来解决这个问题,那就是将两个HEX文件合并成一个HEX文件。


下面将进行具体的步骤。


系统环境
  • 系统:win10
  • 编译软件:keil5
  • 下载工具:J-LINK
  • HEX合并软件:任何可以打开二进制文件的软件,本文推荐UltraEdit
1. 生成BootLoader和app的HEX文件

这个就不用说了,只要配置为编译生成程序,如下:

BootLoader和app这两个程序编译,若没有错就会生成两个.hex文件,我们暂定义一个叫BootLoader.hex和app.hex。


2. 将两个HEX文件合并成一个HEX

用一个可以打开二进制的软件,任何可以打开二进制文件的软件都可以,这种软件很多,本文使用的是UltraEdit

先打开app.hex,显示如下图:

然后再打开BootLoader.hex,将BootLoader.hex里面的全部内容复制到app.hex文件的开头,如下图:

注意:我的这两部分用一个空行隔开了,这样是不对的,因为有些下载软件不支持空行解析,尤其是版本比较低的软件,因此千万别在hex内留空行。


应该修改如下:

然后将文件另存为iap_app.hex,这时候这个新生成的hex就是合成的文件了。


3. 利用J-LINK将文件烧录到mcu

可以选择任何可以下载hex的软件和下载器,我直接用j-link进行下载,软件用的J-Link Commaner,在官网下载的https://www.segger.com/downloads/jlink/,下载安装后图标:

打开后链接mcu板卡进行下载即可。


J-Link Commaner默认带有主流芯片的下载算法,但是可能有的芯片没有支持,需要添加和配置支持包。


那些配置包在芯片的官网一般都可以下载到,如华大的就需要去华大mcu官网下载支持包,然后配置到J-Link Commaner中,方法网上有很多教程,本文不赘述。


4. 其他小知识:在keil上设置默认编译生成bin文件

在keil的安装目录,有几个非常有用的工具软件,如下图:

这些软件都有什么功能,网上有很多教程,本文不在赘述。


本文所讲的是将这些软件添加到keil的配置里面,就可以让keil在编译完成后,将app.hex文件转化成app.bin文件,用于iap升级使用,配置界面如下图:

具体用法,请自行百度,其次按照我上面的绝对路径书写方式,会导致跟系统环境耦合,若换电脑或在其他路径下重新安装keil,就必须改一下这个配置,非常麻烦,解决方法就是将这个fromelf.exe和相关的配置copy到这个工程下,用相对地址引用它。



或者用网上有别人写好的类似叫hex_2_bin.exe的程序,将hex文件转bin(原理不难,可以自己写,但是费时间,网上有很多现成的,没必要在造轮子)。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/564481.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-06
下一篇 2022-04-06

发表评论

登录后才能评论

评论列表(0条)

保存