|
查看: 8|回复: 0

[BLE SDK] OTA时调用flash解锁导致丢包失败,什么原因?

[复制链接]

145

主题

338

回帖

1584

积分

管理员

积分
1584
发表于 昨天 11:37 | 显示全部楼层 |阅读模式 来自 上海
Information
说明:   建议参照本版块置顶帖内容输入必要信息
芯片型号: -
SDK及版本: -
产品做了 flash 加锁防止固件被篡改,OTA 开始时调用 Flash 解锁 API,出现概率性 OTA 失败(报错 01,MCU 端打印确认是接收到的 RF 包漏包),不加解锁时正常,这是什么原因?

回答:

这是flash 解锁/擦除等耗时操作阻塞了射频接收导致的:

1、调用 Flash 解锁(及后续擦写)时,flash 操作会占用较长的总线时间,期间射频收包处理被阻塞,导致 OTA 数据包丢失,进而 OTA 失败。

2、不加解锁操作时测试正常,可以确认问题与 flash 操作时序强相关。

建议:

1、flash 解锁/擦除操作放到连接事件外的空闲窗口执行,或分段小步执行,避免长时间阻塞射频;
2、检查操作期间是否有关闭中断/临界区的处理,尽量缩短 flash 操作占用的时间;
3、评估解锁时机:是否可以在 OTA 数据传输完成后再解锁并校验写入,或按 SDK 提供的 flash 操作规范调整;
4、同步检查 bls_ll_requestConnBrxEventDisable 等连接事件控制接口的使用是否正确。

本版积分规则

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

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

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

在本版发帖返回顶部