|
查看: 6|回复: 0

[BLE SDK] OTA升级成功但重启后仍从旧分区启动,如何排查?

[复制链接]

145

主题

338

回帖

1584

积分

管理员

积分
1584
发表于 7 小时前 | 显示全部楼层 |阅读模式 来自 上海
Information
说明:   建议参照本版块置顶帖内容输入必要信息
芯片型号: -
SDK及版本: -
客户设备升级新固件时,App 已经提示升级成功,但重启后设备仍从原来的分区启动,没有切换到新固件,可能是什么原因?

回答:

这种"升级成功但重启后回退旧固件"的现象,常见原因有以下几点:

1、OTA 成功回调没有完整执行。OTA 最后一步是写入/修改启动标志(0x4b4e4c54),如果升级成功回调被中断(例如直接触发重启),标志没有最终写入,硬件启动时仍会按旧的启动标志从原分区执行。

2、新固件所在分区的启动标志无效。确认新固件存放位置的对应偏移处写入的启动标志是否正确。

3、旧分区的启动标志没有失效。如果旧分区偏移处的标志仍是有效值,硬件会优先从旧分区启动。OTA 成功后需要把旧位置的标志改掉。

4、检查是否有代码在启动时重新擦除/改写 flash 区域,导致新写入的数据在重启时被覆盖。

可以参考本版块的帖子《客户自己实现OTA时,如何理解硬件多地址启动与0x4b启动标志?》了解启动标志机制。

本版积分规则

关注公众号
隐私政策|Telink forum

相关侵权、举报、投诉及建议等,请发 E-mail:forum@telink-semi.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|沪ICP备17008231号-1 |沪公网安备31011502403548号

在本版发帖返回顶部