WCH沁恒单片机
直播中

任凭风吹

9年用户 997经验值
擅长:可编程逻辑 电源/新能源 MEMS/传感技术 制造/封装 模拟技术
私信 关注
[问答]

CH573F作为Observer时候,GAPROLE_MAX_SCAN_RES设为0会不会导致内存溢出?

#define GAPROLE_MAX_SCAN_RES                    0x30E  //!< Maximum number of discover scan results to receive. Default is 0 = unlimited.#define TGAP_FILTER_ADV_REPORTS                 21  //!< Filter duplicate advertising reports. Default TRUE.

CH573F  作为Observer时候,GAPROLE_MAX_SCAN_RES  设为0。
TGAP_FILTER_ADV_REPORTS保持默认值true。
这时候内部应该会记录接收过的广播包,进行去重。

1.如果附近有大量不同的蓝牙设备,ch573记录了一大堆广播,会不会导致内存溢出?
2.GAPROLE_MAX_SCAN_RES设置为false,关闭去重,是不是就避免了这种情况?




回帖(3)

李宸如

2022-8-2 10:11:17
1、不会导致内存溢出,按照我们例程实现一次性扫描8个即可,如果需要扫描更多,可以尝试多次扫描,这样也可以扫描到所有的设备;
2、协议栈里面的功能,一次扫描不会出现重复的,使用默认即可。
举报

庞琳

2022-8-2 10:11:22
如果想实现长时间运行,不断的记录周围设备,之后通过串口什么的发走。


这样,即使增大协议栈空间,早晚也会溢出。
我可以接受重复出现,但是不能让他内存溢出,应该怎么做?
GAPROLE_MAX_SCAN_RES关掉这个有效果吗?
举报

刘易

2022-8-2 10:11:26
我们默认一次扫描8个左右,扫描完之后又释放了这个内存,所以正常使用是不会出现内存溢出的现象,如果需要进行扫描多个设备,可以尝试多次扫描即可。想要实现长时间运行、不断记录周围设备可以分批次处理实现。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分