打印
[其他ST产品]

求 IAP+APP 一个程序代码的思路

[复制链接]
1275|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xutong1|  楼主 | 2020-9-7 14:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求 IAP+APP 一个程序代码的思路

把IAP和APP都在一个代码里面。这样方便生产烧写。 但是有没有人做过,给个思路建议。 如何合成IAP+APP在一个代码中

使用特权

评论回复
沙发
denike| | 2020-9-7 16:23 | 只看该作者
J-Flash就可以合并啦

使用特权

评论回复
板凳
dalarang| | 2020-9-7 16:28 | 只看该作者
两个分别生成HEX文件,再网上找个HEX合并的工具,把这两个合并起来就可以了。
只要两者的地址不冲突

使用特权

评论回复
地板
香水城| | 2020-9-8 13:22 | 只看该作者
目前STM32cube固件库里 每个系列都有IAP的例程,你可以参考下。

还有相关的应用笔记。
AN4045  基于UART协议实现STM32F3 的IAP功能
AN4657 使用USART实现IAP功能

使用特权

评论回复
5
yklstudent| | 2020-9-8 13:27 | 只看该作者
把你的IAP工程HEX文件加入APP工程中就可以了,每次编译生成都是一个完整的,目前我就是这么干的
如果你牛X,你也可以把IAP工程和APP工程整到一起,以前也干过

使用特权

评论回复
6
shipeng1989| | 2020-9-8 15:05 | 只看该作者
IAP的HEX文件删除最后一行后接入APP的HEX内容,这就是HEX合并

使用特权

评论回复
7
ayb_ice| | 2020-9-8 15:38 | 只看该作者
shipeng1989 发表于 2020-9-8 15:05
IAP的HEX文件删除最后一行后接入APP的HEX内容,这就是HEX合并

这是最正确的方法

使用特权

评论回复
8
icecut| | 2020-9-8 16:40 | 只看该作者
不是修改分散加载文件就可以搞定么?

使用特权

评论回复
9
海布里| | 2020-9-8 17:55 | 只看该作者
需要设置一下程序执行的偏移地址

使用特权

评论回复
10
天灵灵地灵灵| | 2020-9-8 20:54 | 只看该作者
参考官方的啊,思路都是那样的。

使用特权

评论回复
11
Prry| | 2020-9-9 10:49 | 只看该作者
分别编译出两个bin文件,通过widows脚本合并,再借助一个bin转hex工具,一键转换。
copy /b .\Boot.bin + .\App.bin Firmware.bin
srec_cat.exe Firmware.bin -Binary -offset 0x8000000 -o Firmware.hex -Intel
del Firmware.bin

具体**描述:
https://acuity.blog.csdn.net/article/details/106724373

使用特权

评论回复
12
Prry| | 2020-9-9 11:17 | 只看该作者

分别编译出两个bin文件,通过widows脚本合并,再借助一个bin转hex工具,一键转换。
copy /b .\Boot.bin + .\App.bin Firmware.bin
srec_cat.exe Firmware.bin -Binary -offset 0x8000000 -o Firmware.hex -Intel
del Firmware.bin
复制代码

具体**描述:
https://acuity.blog.csdn.net/article/details/106724373

使用特权

评论回复
13
香水城| | 2020-12-3 20:54 | 只看该作者
你可以看看这篇**,

IAP代码与APP代码合并烧录示例

使用特权

评论回复
14
daboy5279| | 2020-12-18 18:59 | 只看该作者
这么多方法,都没有我的简单好用,我的是bootloader一个工程,APP一个工程,bootloader工程编译完成后执行一个脚本直接将生成的bin文件输出到app工程的bootloader.c文件里面,app工程编译完成后直接生成一个合并的hex文件,直接仿真或者烧录进去就可以了

使用特权

评论回复
15
daboy5279| | 2020-12-18 19:00 | 只看该作者
这么多方法,都没有我的简单好用,我的是bootloader一个工程,APP一个工程,bootloader工程编译完成后执行一个脚本直接将生成的bin文件输出到app工程的bootloader.c文件里面,app工程编译完成后直接生成一个合并的hex文件,直接仿真或者烧录进去就可以了

使用特权

评论回复
16
gxp6604| | 2021-1-8 17:55 | 只看该作者
daboy5279 发表于 2020-12-18 19:00
这么多方法,都没有我的简单好用,我的是bootloader一个工程,APP一个工程,bootloader工程编译完成 ...

具体咋实现的呢,分享下么,大boy

使用特权

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

本版积分规则

30

主题

210

帖子

0

粉丝