打印

GD32E103CBT6 自己实现Bootloader做更新,启用读保护就不正常

[复制链接]
1462|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ahejn|  楼主 | 2021-12-9 11:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用GD32E103CBT6, 实现了hid的固件更新。
0x800000~0x804000 给Boot,其中Boot的最后一页存储固件信息,0x804000~给应用。
在没有启用读保护的时候,boot可以正常更新App,启用读保护,上位机一切正常,boot里做app区的CRC校验也是成功的,但是重启后无法引导app,怀疑时升级后没有把最新固件信息写入flash,导致仍然引导boot。
因为有读保护,也无法读出flash内容排查。

使用特权

评论回复
沙发
ahejn|  楼主 | 2021-12-9 21:21 | 只看该作者
尝试了一天,解决了。归根结底是延时问题,用的官方demo里面的FMC代码,两次调用flash_write要延时,不然写失败。奇怪的是没有启用读保护的时候却没有问题。
给有类似情况的伙伴们参考。

使用特权

评论回复
板凳
tpgf| | 2022-1-5 14:59 | 只看该作者
大概需要延时多长时间呢

使用特权

评论回复
地板
xiaoqizi| | 2022-1-5 15:03 | 只看该作者
目前最新版本是多少啊

使用特权

评论回复
5
木木guainv| | 2022-1-5 15:04 | 只看该作者
是不是因为有一个生效时间啊

使用特权

评论回复
6
磨砂| | 2022-1-5 15:06 | 只看该作者
无论什么情况 延时的话都是一种好的习惯

使用特权

评论回复
7
晓伍| | 2022-1-5 15:17 | 只看该作者
手册上有没有相关说明呢

使用特权

评论回复
8
八层楼| | 2022-1-5 15:18 | 只看该作者
只有在最后一页需要延时吗

使用特权

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

本版积分规则

1

主题

2

帖子

0

粉丝