- 将两个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
这个就不用说了,只要配置为编译生成程序,如下:
BootLoader和app这两个程序编译,若没有错就会生成两个.hex文件,我们暂定义一个叫BootLoader.hex和app.hex。
用一个可以打开二进制的软件,任何可以打开二进制文件的软件都可以,这种软件很多,本文使用的是UltraEdit
先打开app.hex,显示如下图:
然后再打开BootLoader.hex,将BootLoader.hex里面的全部内容复制到app.hex文件的开头,如下图:
注意:我的这两部分用一个空行隔开了,这样是不对的,因为有些下载软件不支持空行解析,尤其是版本比较低的软件,因此千万别在hex内留空行。
应该修改如下:
然后将文件另存为iap_app.hex,这时候这个新生成的hex就是合成的文件了。
可以选择任何可以下载hex的软件和下载器,我直接用j-link进行下载,软件用的J-Link Commaner,在官网下载的https://www.segger.com/downloads/jlink/,下载安装后图标:
打开后链接mcu板卡进行下载即可。
J-Link Commaner默认带有主流芯片的下载算法,但是可能有的芯片没有支持,需要添加和配置支持包。
那些配置包在芯片的官网一般都可以下载到,如华大的就需要去华大mcu官网下载支持包,然后配置到J-Link Commaner中,方法网上有很多教程,本文不赘述。
在keil的安装目录,有几个非常有用的工具软件,如下图:
这些软件都有什么功能,网上有很多教程,本文不在赘述。
本文所讲的是将这些软件添加到keil的配置里面,就可以让keil在编译完成后,将app.hex文件转化成app.bin文件,用于iap升级使用,配置界面如下图:
具体用法,请自行百度,其次按照我上面的绝对路径书写方式,会导致跟系统环境耦合,若换电脑或在其他路径下重新安装keil,就必须改一下这个配置,非常麻烦,解决方法就是将这个fromelf.exe和相关的配置copy到这个工程下,用相对地址引用它。
或者用网上有别人写好的类似叫hex_2_bin.exe的程序,将hex文件转bin(原理不难,可以自己写,但是费时间,网上有很多现成的,没必要在造轮子)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)