1.4的协议栈跑simpleBLEPeripheralObserver工程遇到一个问题
我在该工程的基础上新增了一个功能,在SBP_PERIODIC_EVT 定时器超时后,打印采集到的BLE Device。
现在问题是每次开机都挺好,运行一段时间后就跳到一个空转的死循环里了,所有任务都不动,用sniff看广播也没了。
这个死循环怎么回事?我暂停IAR有时候提示Xstack溢出,有时间什么debug log也没。
我该如何定位是哪里出的问题啊?请大侠提供思路,谢谢
shen,
有没有申请内存,然后没有释放的?
内存用光了?
还有一种情况 你用了很耗时的软延时或者处理程序本身耗时太长,导致了广播RF的中断。我这边就遇到过这样的情况,优化后解决的。
我也碰到这种问题了,用的是TI提供的SimpleBLEPeripheralObserver工程,在使用Observer功能时,我是在每次扫描完成后的GAP_DEVICE_DISCOVERY_EVENT事件处理中,再开启一个很短的定时器,开启下一次的扫描:
osal_start_timerEx( simpleBLEPeripheral_TaskID, START_DISCOVERY_EVT ,100);
现在的问题是:CC2541运行一段时间后(短则半个小时,长的话可能2个小时),无线部分就不工作了,即没有向外发送的广播数据包,也不能扫描数据了。但在线仿真时,程序还在运行,没有死机。只是无线部分停止工作。
请指教,谢谢!
我也遇到过这个问题,想问TI 官方人员,如果RF内核不工作了,可以通过什么接口可以确定吗?
还有我在 外文论坛里面看到,目前协议栈有 GAP_SetParam(TGAP_FILTER_ADV_REPORTS, False) 的bug,估计1.4.1 可以解决这个问题。
lz以及各位这个问题解决了没有,这个问题已经困扰我很久了,如有解决方案,在下万分感激!