|
查看: 11|回复: 0

[BLE SDK] BLE接收时DMA内存写溢出,长度限制怎么设?

[复制链接]

145

主题

338

回帖

1584

积分

管理员

积分
1584
发表于 昨天 13:36 | 显示全部楼层 |阅读模式 来自 上海
Information
说明:   建议参照本版块置顶帖内容输入必要信息
芯片型号: -
SDK及版本: -
BLE 接收时出现 DMA 内存写溢出:DMA 会写入额外的 15 字节;RX FIFO Length 48 字节;在 BRX 前限制了 LE 长度 40 字节(是否应该限制为 48-15?);当 RX FIFO 指向最后一组 buffer 且刚好错包时,RFLEN 为 0x23(35 字节),再加上 DMA 写入的其他数据就超出了。BRX 时 RX DMA length 应该设置为多少?

回答:

长度限制的设置值要跟 rf_len 相等,跟 DMA 的 size 没有关系。

1、BRX 前限制的长度是 rf_len(RF 接收包长度),不是 DMA 搬运长度;用"DMA size - 15"这种方式计算是错误的。

2、rf_set_rxmax 这类接口设置的 RF 接收长度不包含 RF 包的其他内容(包头、校验等),按实际需要的最大有效载荷设置即可。

3、排查 DMA 写溢出时,重点核对:RF 接收长度限制、RX FIFO 深度、每组 buffer 大小、DMA 传输属性(是否多写额外字节)之间的匹配关系,参考对应芯片 driver 的 RF/DMA 章节。

本版积分规则

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

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

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

在本版发帖返回顶部