硬汉嵌入式论坛

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

[技术讨论] GD32F470 OTA 过程中怎么防止断电卡死啊?

[复制链接]

2

主题

15

回帖

21

积分

新手上路

积分
21
发表于 2024-9-27 09:45:14 | 显示全部楼层 |阅读模式
本帖最后由 gqs123 于 2024-9-27 09:50 编辑

            原始方案是,有三个区域,bootloader、APP1、APP2 分别放在 0x08000000、0x08020000、0x08060000 ,每次烧写固件到APP2,然后检验正常后从APP2 copy 到 APP1,但是这样如果中间断电的话,机子就死机了。
            
             改了一些方案,我每次判断APP1和APP2的版本谁的更旧,更新固件时就烧写旧的那个,然后烧写完成后再运行这两个APP中最新的版本,但实际中遇到一个问题:

               由于我是使用keil生成bin文件,keil bin文件的内容由这个参数决定 ,这样编译出来bin文件都是08060000的数据,这个文件即使烧录到了0x08020000,也会跑到0x08060000去运行,这样不管哪个版本更新最终都是运行0x08060000的位置,无法在两个APP之间实现切换执行。
             求大佬指点。


1727401792916.jpg
bin.jpg
回复

使用道具 举报

3

主题

72

回帖

81

积分

初级会员

积分
81
发表于 2024-9-27 10:30:45 | 显示全部楼层
断电也不会死机吧,bl会检测app1分区的校验,校验不过,就会校验app2,app2校验过了,就重新把app2搬到app1。
你断电理论上只会影响app1的完整性,不会影响app2的。
回复

使用道具 举报

2

主题

65

回帖

71

积分

初级会员

积分
71
发表于 2024-9-27 10:47:32 | 显示全部楼层
可以参考rtt的ota组件的思路,把app2作为download分区,只在这里暂存固件,不从这里运行;
bl里只从download搬运到app1,即使断电download中也是完整固件,再次校验搬运就行,偏移量直接按app1的设置

回复

使用道具 举报

2

主题

65

回帖

71

积分

初级会员

积分
71
发表于 2024-9-27 10:55:10 | 显示全部楼层
其实楼主的思路可以归结为想让一个bin同时能在不同的地址开始运行,这个方式很麻烦,需要所有涉及链接的地方都要做成位置无关的,大概只有理论可行
https://www.armbbs.cn/forum.php?mod=viewthread&tid=116422
回复

使用道具 举报

2

主题

15

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2024-9-27 13:51:59 | 显示全部楼层
谢谢大家,我思维陷入误区了,已解决
回复

使用道具 举报

95

主题

528

回帖

828

积分

金牌会员

积分
828
发表于 2024-9-27 14:39:07 | 显示全部楼层
你这种方式我以前也考虑过..

最后的出的结论是同一个代码需要针对0x08020000、0x08060000 做两份程序。
然后根据当时的情况,选择其中一份烧写。。。这样子才能实现两个APP区域运行。

否则的话,你做的0x08020000是无法在0x08060000运行的。。
这样子搞是没意义的。。。
反而更麻烦。。

我觉得保证断电后重新上电,boot能继续升级即可。。
大不了升挂了,让用户重新升级呗。。

共产主义一定胜利!
回复

使用道具 举报

95

主题

528

回帖

828

积分

金牌会员

积分
828
发表于 2024-9-27 14:41:13 | 显示全部楼层
另外感觉沙发说的是对的。断电理论影响不到APP2。
断电了重新COPY呗
共产主义一定胜利!
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 5 天前 | 显示全部楼层
gqs123 发表于 2024-9-27 13:51
谢谢大家,我思维陷入误区了,已解决

老哥你是怎么解决的呀
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 5 天前 | 显示全部楼层
gqs123 发表于 2024-9-27 13:51
谢谢大家,我思维陷入误区了,已解决

大佬你是怎么解决的,能分享一下吗?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-26 01:41 , Processed in 0.392723 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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