STM32HEX合并及一键烧写

来源:漫长当下 开发板 10 次阅读
摘要:在某些场景我们需要将多个hex文件合并成一个hex文件烧写到芯片中,比如远程升级。 在做远程升级的时候,程序组合一般是IAP加APP的形式,本文只讲解最简单的单个IAP加单个APP的情况,实际上这个明白了,多个IAP加多个APP的情况也就是一样的方法。 用到的软件就是第一篇文章 ()J-Link驱动提供的J-Flash工具了,下面我将使用bat批处理脚本配合J-Flash命令自动化的合并两个hex

在某些场景我们需要将多个hex文件合并成一个hex文件烧写到芯片中,比如远程升级。

在做远程升级的时候,程序组合一般是IAP加APP的形式,本文只讲解最简单的单个IAP加单个APP的情况,实际上这个明白了,多个IAP加多个APP的情况也就是一样的方法。

用到的软件就是第一篇文章

()J-Link驱动提供的J-Flash工具了,下面我将使用bat批处理脚本配合J-Flash命令自动化的合并两个hex文件并将其烧写到芯片中。

本文约定:你已经知道两个hex文件在芯片flash中的存储分布,并且已经了解远程升级相关知识,芯片型号为STM32F407ZET6,IAP程序烧写及运行地址为0x08000000,APP程序烧写及运行地址为0x08008000,注意两个地址都需要在Keil MDK或其它软件中编译程序前设置好,APP程序的地址需要与你程序中定义的跳转地址一致,否则程序无法运行。

1.新建一个文件夹,我这里取名为《hex合并及一键烧写》,然后在此文件夹中创建三个文件夹及一个bat批处理脚本,如下图:

 

2.进入J-Link驱动安装目录,拷贝下图框选文件到TOOL文件夹中,这些文件就是J-Flash运行需要的东西

 

3.创建jflash工程,保存到PRJ文件夹中,操作如下

4.编写脚本程序,程序中用到的所有命令,都可以在J-Flash工具中按F1打开帮助文档找到,打开前面创建的bat脚本,然后输入以下的内容保存即可

@ECHO OFFECHO Open a project and data file, start auto processing and exitECHO. %换行%::打开J-Flash工具,加载jflash工程,加载hex文件并指定地址,将合并后的hex另存(非必要),最后烧写到芯片中并运行TOOL\JFlash.exe -openprjPRJ\jlinkCfgFile.jflash -openHEX\iap.hex,0x08000000 -mergeHEX\app.hex,0x08008000 -saveasHEX\iap_app.hex -auto -startapp -exitIF ERRORLEVEL 1 goto ERRORgoto END:ERROR::烧写成功直接退出,烧写失败则给出提示ECHO J-Flash ARM:  Error!pause:END

5.将要合并写入的hex文件放到HEX文件夹中

6.完成以上的步骤,以后烧写程序就只需要执行一下脚本就完成了多个hex文件的一次性写入

相关推荐
评论区

登录后即可参与讨论

立即登录