stm32同时编译多个固件

如题所述

为满足日常开发需求,现在很多情况下一个片子需要通过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的文件要确保烧写的地址。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-12-05
这里以两个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的文件要确保烧写的地址。