本帖最后由 dffzh 于 2025-9-11 17:21 编辑
从事基于MCU的嵌入式软件开发时,在将最终固件发布到生产之前,我们往往需要将bootloader程序的文件(称之为boot.bin)和应用程序的文件(称之为app.bin)进行合并,生成一个带bootloader的固件并提供给工厂端,大家一般是怎么合并的?我这里提供两种本人用过的方法,供大家参考。
方法一:使用jflash工具
新建工程后,打开需要合并的boot.bin文件: 填入boot的起始地址,视所用MCU而定,比如0x8000000,点击OK: 再按以下方式打开需要合并的app.bin文件: 填入app的起始地址,根据你在IDE和程序里的配置而定,,比如Keil里面的话,可以查看这里: 即配置为0x0801000,点击OK;
保存文件,即为合并两个文件的过程: 会弹出让你配置地址范围,一般不要配置,直接OK,比如保存为boot+app.bin文件。 方法二:使用Bin Merger工具 如果你觉得方法一的操作比较繁琐或者容易出错的话,可以试试方法二。
打开小工具BinMerger.exe: 点击浏览,先导入boot.bin文件: 点击添加: 再点击浏览,导入app.bin文件: 点击添加:
偏移地址与方法一中描述的类似,即应用程序相对bootloader的偏移地址。 点击合并,设置合并后的文件名称,比如app+boot.bin,点击保存即可。 这里可以通过beyondcompare工具比较一下两种方法生成的bin文件数据是否一样: 选择16进制比较:
分别导入两个bin文件进行比较,发现是一模一样的:
说明两种方法合并的bin文件没有什么问题。
|