硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1403|回复: 16
收起左侧

[BOOT/IAP] [BOOT/IAP] 怎升級Bootloader

[复制链接]

19

主题

76

回帖

133

积分

初级会员

积分
133
发表于 2022-6-13 11:04:37 | 显示全部楼层 |阅读模式
目前分區如下
RAM  16K
boot  16K
app1 22K
app2 22K
TMP 4k
app2 是拿來萬一升級失敗可以退回去app1
但沒想明白 這樣BOOT要怎麼升級

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106692
QQ
发表于 2022-6-13 14:51:30 | 显示全部楼层
app升级boot就行。
回复

使用道具 举报

9

主题

33

回帖

60

积分

初级会员

积分
60
发表于 2023-11-22 16:45:45 | 显示全部楼层
eric2013 发表于 2022-6-13 14:51
app升级boot就行。

app升级boot 如果中间断电,直接变砖
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106692
QQ
发表于 2023-11-22 17:14:34 | 显示全部楼层
791560795 发表于 2023-11-22 16:45
app升级boot 如果中间断电,直接变砖

这样的话,你的boot也得做双备份了。
回复

使用道具 举报

9

主题

33

回帖

60

积分

初级会员

积分
60
发表于 2023-11-23 16:40:54 | 显示全部楼层
eric2013 发表于 2023-11-22 17:14
这样的话,你的boot也得做双备份了。

双备份也解决不了问题吧,比如我在外部备份了一个BOOT,但是升级主BOOT的时候,掉电,重新上电还是会挂掉,还是会变砖
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106692
QQ
发表于 2023-11-24 08:31:37 | 显示全部楼层
791560795 发表于 2023-11-23 16:40
双备份也解决不了问题吧,比如我在外部备份了一个BOOT,但是升级主BOOT的时候,掉电,重新上电还是会挂掉 ...

没问题,H7系列可以设置从任意Flash地址启动。切换后,同时通过选项字节配置,将启动地址也改了,防止掉电损坏。
回复

使用道具 举报

9

主题

33

回帖

60

积分

初级会员

积分
60
发表于 2023-11-24 09:16:00 | 显示全部楼层
eric2013 发表于 2023-11-24 08:31
没问题,H7系列可以设置从任意Flash地址启动。切换后,同时通过选项字节配置,将启动地址也改了,防止掉 ...

Cortex-M7 支持这种特性,Cortex-M4 好像不支持吧。这就尴尬了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106692
QQ
发表于 2023-11-24 10:55:06 | 显示全部楼层
791560795 发表于 2023-11-24 09:16
Cortex-M7 支持这种特性,Cortex-M4 好像不支持吧。这就尴尬了

很多型号支持BANK,双BANK的配置切换启动地址。
回复

使用道具 举报

9

主题

33

回帖

60

积分

初级会员

积分
60
发表于 2023-11-24 11:36:12 | 显示全部楼层
eric2013 发表于 2023-11-24 10:55
很多型号支持BANK,双BANK的配置切换启动地址。

多谢多谢,支持安富莱发展越来越好
回复

使用道具 举报

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
发表于 2023-11-24 11:37:51 | 显示全部楼层
你这个boot是自己写的,这个boot可以用芯片自带的boot来升级啊。就是st的cubeprogrammer操作的那个空间地址。
回复

使用道具 举报

0

主题

99

回帖

99

积分

初级会员

积分
99
发表于 2023-11-24 11:52:18 | 显示全部楼层
新Bootloader先缓冲到RAM中,传输完再更新(过程中所以代码必须再RAM中跑),这样中途断电可能性极少。当然前提是RAM要够。
回复

使用道具 举报

210

主题

1043

回帖

1683

积分

至尊会员

More we do, more we can do.

积分
1683
发表于 2023-11-24 12:52:48 | 显示全部楼层
将传输与升级分开,实际升级动作秒以内就没什么风险了
回复

使用道具 举报

9

主题

33

回帖

60

积分

初级会员

积分
60
发表于 2023-11-24 14:41:33 | 显示全部楼层
caicaptain2 发表于 2023-11-24 11:37
你这个boot是自己写的,这个boot可以用芯片自带的boot来升级啊。就是st的cubeprogrammer操作的那个空间地址 ...

我需要网络接收数据,然后给APP升级。MCU的本身bootloader怎么升级?
回复

使用道具 举报

9

主题

33

回帖

60

积分

初级会员

积分
60
发表于 2023-11-24 14:42:26 | 显示全部楼层
ilcvm 发表于 2023-11-24 11:52
新Bootloader先缓冲到RAM中,传输完再更新(过程中所以代码必须再RAM中跑),这样中途断电可能性极少。当然 ...

你这种还是存在风险,即使缓存在RAM中,中途断电,RAM数据丢失也就,变砖了。
回复

使用道具 举报

9

主题

33

回帖

60

积分

初级会员

积分
60
发表于 2023-11-24 14:43:42 | 显示全部楼层
emwin 发表于 2023-11-24 12:52
将传输与升级分开,实际升级动作秒以内就没什么风险了

实际动作很难秒以内的。因为Bootloader要加操作系统及网络协议栈等,文件还是挺大的。你这是一种方法,只是规避,没有完全解决
回复

使用道具 举报

1

主题

12

回帖

15

积分

新手上路

积分
15
发表于 2023-11-24 15:43:58 | 显示全部楼层
目前也遇到boot升级存在风险的问题。我这边在APP中进行boot的升级,将boot从flash的备份区拷贝到flash的运行区共需要16ms,这个过程存在风险,因为芯片上电后是从boot运行区启动,再跳转到APP。有个疑问,软件如果要更新,升级APP就够了,什么情况下才会去升级boot呢?
回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
发表于 2023-11-24 20:20:27 | 显示全部楼层
只要通过app去升级boot,风险肯定是有的,只是如何做到最低。无疑app先把待升级固件储存到sram,完整后更新boot是风险最小的,如果还不放心,加大cpu端供电滤波电容,更新boot前检测一下供电电压,高于一定值再更新,即使断电,滤波电容电量还能确保升级完成。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-30 06:36 , Processed in 0.236863 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表