打印
[其他ST产品]

关于STM32系列芯片bootloader开发的问题?

[复制链接]
1284|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
laocuo1142|  楼主 | 2021-11-3 15:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好,请问用STM32进行bootloader开发时,能不能将boot和app程序的hex合成为一个hex进行烧录?我之前分别烧录两个hex,是可以实现功能的,不知道合成一个hex烧录行不行。
我之前用DSP C2000系列芯片时,都是将app和boot程序的hex进行合成的,现在改用ST了,在合成hex时产生了个疑问,因为ST芯片的启动方式是上电后从flash(假设是从flash直接启动)起始位置开始执行(获取栈顶指针地址,获取Reset向量所指地址等等),因此我猜测在合成hex时,应该将boot程序放在以0x08000000起始的位置,而app放在boot的后面(DSP是相反的,hex文件中app在前,boot在后)。那么我会产生下面几个疑问:
(1)hex文件的倒数第二行是用来指定程序入口地址的,即Reset_Handler的地址,那么合成后的hex的倒数第二行应该指定boot的入口还是app的入口?
(2)如果是boot的入口,那么在boot程序执行完,跳转到app时,能不能跳转到app的入口(因为hex中没有指定app的入口)?
(3)如果我在boot程序的末尾不是跳转到app程序的flash空间首地址,而是直接跳到app的Reset_Handler,那么app接下来能否正常执行?


使用特权

评论回复
沙发
flycamelaaa| | 2021-11-3 15:25 | 只看该作者

用文件合并工具按照具体地址合并不行么

使用特权

评论回复
板凳
xuannin| | 2021-11-4 13:41 | 只看该作者
J-Flash 就能合并hex或bin或者其它格式文件, file->Open data file 调入boot, file->Merge data file 调入App,  file->save data as 保存文件即可

使用特权

评论回复
地板
wakayi| | 2021-12-1 14:41 | 只看该作者
我都是用默认的下载方式

使用特权

评论回复
5
labasi| | 2021-12-1 17:13 | 只看该作者
stlink的下载方式

使用特权

评论回复
6
paotangsan| | 2021-12-1 17:19 | 只看该作者
都可以用于哪方面啊

使用特权

评论回复
7
renzheshengui| | 2021-12-1 17:20 | 只看该作者
这个怎么合并呢

使用特权

评论回复
8
tpgf| | 2021-12-1 17:21 | 只看该作者
关键是地址如何处理

使用特权

评论回复
9
wowu| | 2021-12-1 17:22 | 只看该作者
感觉很麻烦的

使用特权

评论回复
10
asmine| | 2021-12-2 17:16 | 只看该作者
我也是分两段写
你这么一说,貌似可以研究下,

至于地址处理,可能找PC端开发的同事,写个小软件了~~~

使用特权

评论回复
11
zchong| | 2021-12-3 07:41 | 只看该作者
简单啊,写进去再读出来就可以了

使用特权

评论回复
12
小叶三千| | 2021-12-3 08:15 | 只看该作者
当然可以啊。。。boot程序要求跳到哪个地址就是APP的就行,然后固定好APP的地址

使用特权

评论回复
13
lwltony88| | 2021-12-3 16:24 | 只看该作者
请问哪里买ST的芯片好

使用特权

评论回复
14
moticsoft| | 2021-12-5 10:42 | 只看该作者
可以啊,先按照你原来的做法,分别把两个hex烧进去,保证程序可以运行。然后把整片flash读出来,存成文件,以后只要烧录这个文件就好了。

使用特权

评论回复
15
Prry| | 2021-12-5 22:27 | 只看该作者
必须可以。这个方法是你需要的:
https://acuity.blog.csdn.net/article/details/106724373

使用特权

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

本版积分规则

1191

主题

5220

帖子

12

粉丝