打印
[应用相关]

STM32如何烧写多个HEX固件

[复制链接]
779|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wiba|  楼主 | 2021-9-3 13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为满足日常开发需求,现在很多情况下一个片子需要通过BootLoader和Application两段程序组成。

Bootloader:一般用作用户升级Application用户程序用,程序的起始地址为:0x08000000,当遇到Application程序有更新的情况下,可以很方便和友好的通过BootLoader程序来对其进行更新。Bootloader更新Application的方式和途径有很多,比如串口的IAP、U盘的IAP等等,本人常用U盘进行升级。

Application:用户程序。一般起始地址并不是再0x08000000。

调试烧写hex固件的方式我一般选择的是Jflash,方式也很多,比如,Stlink的烧写软件,串口的烧写软件(MCUISP挺好用)等等。

第一步:将多个HEX文件合并成一个HEX文件。

这里以两个HEX为例,其中一个为BootLoader,另一个为Application。

1.新建一个文本文档,并命名成XXX.hex

2.通过各种编辑器分别打开BootLoader.hex、Application.hex和XXX.hex。我这里用的是notepad++。

3.把Bootloader里面的内容全部复制到XXX.hex中

4.删除XXX.hex中的最后一行(:00000001FF)

5.将Application.hex中的内容全部复制并添加到XXX.hex的结尾

6.保存,此时的XXX.hex文件就是一个合并了Bootloader和Application的固件。

第二步:烧写固件

烧写固件比较简单,但是要注意两个hex的文件要确保烧写的地址。


使用特权

评论回复
沙发
tail066| | 2021-9-3 14:07 | 只看该作者
我一般是把主程序的地址往后改一下。
先运行boot,然后boot跳转到后面的主程序

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

77

主题

3305

帖子

3

粉丝