嵌入式固件一般分为BootLoader和App,BootLoader在cpu上电第一阶段中运行,之后跳转至App地址执行应用程序。对于STM32来说,使用keil编程时,编译后会出现一个hex文件和bin文件,那么BootLoader程序和APP程序就会出现2个bin文件或者2个hex文件,那么我们如何将BootLoader固件和App固件;此时我们期望是将BootLoader固件和App固件合并成为一个固件,这样在量产时只需烧录一次即可。
这里我们需要使用一个非常好用的bin or hex 合并的工具
srec_cat一个功能非常强大的文件合并、转换工具,支持功能众多,包括:
- 文件合并
- 文件分割
- bin转hex
- hex转bin
- 数据填充
- CRC校验
1.下载、安装srec_cat工具
srec应用和工具下载详见官方网站:SRecord 1.65
CSDN 0积分免费下载:【免费】srec-cat工具;对于STM32来说,使用keil编程时,编译后会出现一个hex文件和bin文件,那么BootLoader程资源-CSDN文库
建议使用默认目录,不用更改
无脑下一步
2.配置环境变量,确保能正常使用srec_cat工具
- 去到刚刚安装完成的srecord的文件路径,默认是C:\Program Files\srecord
- 打开bin文件夹
- 选中 "srec_cat.exe "复制到该目录下 C:\Windows
- 选中这些 xxx.dll 文件复制到 C:\Windows\System32
- 配置环境变量
- 编辑新增Path
- 打开控制台,输入 srec_cat -VERSion
出现如上信息,表示环境配置成功
3.keil设置---编译成功后,可输出xxxxx.bin 文件 和xxxxx.hex文件
- 设置输出hex文件
-
- 设置输出bin 文件
-
添加如下 fromelf --bin -o "$L@L.bin" "#L"
4.开始合并
- 新建一个文件夹,文件夹名称最好不带中文字符
- 将boot.bin、boot.hex、app.bin、app.hex文件都放进文件夹中
- 新建一个文本文档文件,最好不带中文字符
- 输入以下
copy /b .\boot.bin + .\app.bin Firmware.bin
srec_cat.exe boot.hex -Intel app.hex -Intel -o merge.hex -Intel
- 保存并修改为 .bat文件
- 双击运行文件
- 成功合成