工具/软件:TI-RTOS
HY、
我 过去也有过类似的问题,现在不幸的是,这是一系列的问题。 我们在现场大约有5000个器件、到目前为止、出现了5个以下情况:
基于 CC2640、电池供电、外围设备、连接的某些 I2C 设备、在不同情况下崩溃:它们要么重新启动、卡死(无广播、无反应)、要么处于状态、在这种状态下、它们仍在广播但不可连接。 我的猜测是、在从设备到扫描器的海量数据传输过程中会发生这种情况:我的设备收集通过通知传输到主设备的数据。 在我的测试方案中、我尝试通过发送205个通知来传输4KB 字节。 我始终在 for 循环中调用6次 GATT_Notification、而不是设置另一个信标来发送接下来的6个包。
当器件处于错误状态时、我在调试会话中观察到不同的现象:
1) 1)软件在 MB_PATCH.c 的 MB_SendCommand 中挂起
//检查任何意外的邮箱错误
mb_assert ((MB_CMDSA_REG 和0xFF)== CMDSA_DONE);
MB_CMSTA_REG 包含0x87
2) 2) osal_BM_FREE 中的无限循环
在 osal_bufmgr.c 的函数 osal_bm_free 中 、我在中看到一个无限循环
while (loop_ptr!= NULL)
因为 loop_ptr 和 loop_ptr -> next _ptr;显示到同一地址。
有一个独特性:在 RTOS 对象视图(ROV)中、我看到"stackPeak "消息"溢出!"。 但实际上、即使在运行良好的系统中、我也始终会看到这一点。
是否有人可以为我提供一些提示、说明从何处开始跟踪此问题?
此致
Harald


