当前位置:网站首页>把boot和APP一起烧录进MCU
把boot和APP一起烧录进MCU
2022-08-04 15:41:00 【路过的小熊~】
介绍
iap和APP程序烧录进单片机大致有两种方法:
1,第一种方法,先烧录IAP,再用IAP引导(比如通过串口)烧录APP程序,这样就需要两步,比较费时费力,对大批量生产不太合适;
2,第二种方法,把boot.HEX与APP.HEX文件合并,一次烧录进去,省事省力;
IAP.HEX与APP.HEX文件合并介绍
下面介绍一下,怎么样把boot.HEX与APP.HEX文件合并成一个文件
boot +APP 结合的方法
boot 和APP 的hex 文件合成1个hex 文件的方法有3种:
方法一 – 工具烧录
1、boot 先用工具烧写进flash 的 0x0800 0000 开始位置, 再把APP用工具烧写到 flash 的0x 0800 3000开始的地方;
方法二 – 手动合并为一个烧录
2、手动合并boot和app 的.hex 文件
(1)设置boot程序下载到flash 的开头地址为0x0800 0000,然后编译程序生成hex文件。
(2)设置APP程序下载到flash 的开头地址(地址依据芯片和程序大小而定),然后编译程序生成hex文件。
(3)用 notepad++ (或Uedit32) 打开 boot 的hex文件和APP的hex 文件
把boot的.hex 最后一句结束语句去掉(即:删除:00000001FF)
把APP的.hex 全部内容拷贝复制到 刚才删掉结束语句的boot的.hex后面
(4)把两个hex合成的hex文件重新命名为XXX.hex,然后通过烧写工具烧写到0x0800 0000 开始位置的地址即可。
方法三 – bin文件工具合并烧录
3、利用bin文件合并工具将两个bin文件合并为一个
下载地址https://download.csdn.net/download/qq_32348883/86321337
方法四 – hex文件脚本合并烧录
我们使用程序编译完成这个操作
1、我们知道IAP程序确定后,一般是不需要怎样改动的。那么我们将STM32_IAP.hex文件打开,将最后一行删掉之后,保存为一个新的文件 STM32_IAP_change.hex,存放在新建的文件夹中
2、将STM32_IAP_change.hex 的内容复制到一个新的文件中 STM32_App.hex
3、将keil5生成的stm32.hex 追加到 STM32_App.hex中。这样即可以得到我们想要的合并的文件。
(可以通过手动合并生成的文件与使用该程序生成文件进行对比是否有所差异)
4、根据以上步骤,新建 merge.cmd 文件,然后在该文件中添加一下代码。将该脚本放在与STM32_IAP_change.hex同样的文件中。其中 type %cmdDir%…\Uvproj\Output\stm32.hex >> %cmdDir%STM32_App.hex 这行脚本的 \Uvproj\Output\stm32.hex是工程文件生成hex文件路径。
set "cmdDir=%~dp0"
copy %cmdDir%Stm32_IAP_chang.hex %cmdDir%STM32_App.hex
type %cmdDir%..\Uvproj\Output\stm32.hex >> %cmdDir%STM32_App.hex
5、点击 keil5中的魔术棒,将该脚本文件添加到 Run 中
6、这样,每次编译后,就会执行该脚本,就可以自动生成期望的合并文件,不用每次手动合并那么繁琐,从而提高开发效率。
方法5 – 使用hex上位机合并工具
下载地址https://download.csdn.net/download/qq_32348883/86322334
总结
方便生产效率的提升
边栏推荐
猜你喜欢
随机推荐
什么是 DevOps?看这一篇就够了!
Tinymce plugins [Tinymce 扩展插件集合]
分布式链路追踪Jaeger + 微服务Pig在Rainbond上的实践分享
农产品期货开户哪家好??
无心剑七绝《七夕牵手》
吴恩达机器学习[9]-神经网络学习
A detailed explanation of what is software deployment
Go 言 Go 语,一文看懂 Go 语言文件操作
IP报文头解析
(2022杭电多校五)C - Slipper (dijkstra+虚拟结点)
For循环控制
MySQL select加锁分析
洛谷题解P4326 求圆的面积
技术分享| 小程序实现音视频通话
AAAI‘22 推荐系统论文梳理
GET 和 POST 请求的区别
GPS卫星同步时钟,NTP网络同步时钟,北斗时钟服务器(京准)
面渣逆袭:MySQL六十六问,两万字+五十图详解
现代 ABAP 编程语言中的正则表达式
Go Go 简单的很,标准库之 fmt 包的一键入门









