TI中文支持网
TI专业的中文技术问题搜集分享网站

1.4的协议栈跑simpleBLEPeripheralObserver工程遇到一个问题

我在该工程的基础上新增了一个功能,在SBP_PERIODIC_EVT 定时器超时后,打印采集到的BLE Device。

现在问题是每次开机都挺好,运行一段时间后就跳到一个空转的死循环里了,所有任务都不动,用sniff看广播也没了。

这个死循环怎么回事?我暂停IAR有时候提示Xstack溢出,有时间什么debug log也没。

我该如何定位是哪里出的问题啊?请大侠提供思路,谢谢

Yan:

shen,

有没有申请内存,然后没有释放的?

内存用光了?

wenzhong shen:

还有一种情况 你用了很耗时的软延时或者处理程序本身耗时太长,导致了广播RF的中断。我这边就遇到过这样的情况,优化后解决的。

zhong liu1:

回复 wenzhong shen:

我也碰到这种问题了,用的是TI提供的SimpleBLEPeripheralObserver工程,在使用Observer功能时,我是在每次扫描完成后的GAP_DEVICE_DISCOVERY_EVENT事件处理中,再开启一个很短的定时器,开启下一次的扫描:

osal_start_timerEx( simpleBLEPeripheral_TaskID, START_DISCOVERY_EVT ,100);

现在的问题是:CC2541运行一段时间后(短则半个小时,长的话可能2个小时),无线部分就不工作了,即没有向外发送的广播数据包,也不能扫描数据了。但在线仿真时,程序还在运行,没有死机。只是无线部分停止工作。

请指教,谢谢!!

Hui Chen4:

回复 zhong liu1:

我也遇到过这个问题,想问TI 官方人员,如果RF内核不工作了,可以通过什么接口可以确定吗?

还有我在 外文论坛里面看到,目前协议栈有  GAP_SetParam(TGAP_FILTER_ADV_REPORTS, False) 的bug,估计1.4.1 可以解决这个问题。

yanming zhang:

lz以及各位这个问题解决了没有,这个问题已经困扰我很久了,如有解决方案,在下万分感激!

赞(0)
未经允许不得转载:TI中文支持网 » 1.4的协议栈跑simpleBLEPeripheralObserver工程遇到一个问题
分享到: 更多 (0)