|
查看: 6|回复: 0

[BLE SDK] TRX FIFO变量需要放到retention区域吗?

[复制链接]

145

主题

338

回帖

1584

积分

管理员

积分
1584
发表于 昨天 11:49 | 显示全部楼层 |阅读模式 来自 上海
Information
说明:   建议参照本版块置顶帖内容输入必要信息
芯片型号: -
SDK及版本: -
TRX FIFO 相关的变量要不要放到 retention 区域(_attribute_data_retention_)?deep 唤醒后都需要先发广播包回连,retention 在 FIFO 里的数据是不是就没用了?

回答:

需要放到 retention 区域,不放会出问题。原因:

1、当slave latency(从机延迟)生效时,链路进入 deep retention 模式,协议栈需要依赖 retention 区域里保留的数据恢复链路状态,TRX FIFO 里的数据同样需要保留。

2、如果 TRX FIFO 相关变量不放进 retention 区域,进入 deep retention 后这些数据丢失,唤醒恢复时链路状态不完整,会导致异常。

3、结论:除非你只使用 suspend 模式(不使用 deep retention),否则 TRX FIFO 相关变量必须放到 retention 区域。

注意:retention 区域大小有限(如 32K boot 工程),放进去的变量越多占用的 retention 空间越大,需在编译链接时确认不溢出(参考"Retention Area Overflow"话题)。

本版积分规则

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

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

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

在本版发帖返回顶部