开发环境:CCS Version: 9.0.1.00004 。SDK:simplelink_cc2640r2_sdk_3_20_00_21。示例程序:ble5_simple_peripheral_cc2640r2lp_app
描述:基于官方例程ble5_simple_peripheral_cc2640r2lp_app未做任何改动。使用手机APP连接目标从机,整个过程不断电不重启,反复进行连接断开再连接再断开的操作,大概60次会出现死机现象,准确的说应该是蓝牙协议栈不工作,导致设备不能继续广播,从而无法再连接此设备,此时只能通过复位上电才能再次广播。
关于这点有如下猜想:是不是BLE协议栈在工作的过程中申请动态内存后未释放完全,导致累积到一定次数后剩余空间不足,导致BLE协议栈停止工作?因为我们进行过测试,在我们自己的程序上大概只能连接30次,通过修改程序后使剩余资源变大连接次数明显可以提升。现在想请你们对此现象做个测试评估,感谢支持。
Viki Shi:
1、建议在新版的SDK上进行测试
2、“反复进行连接断开再连接再断开的操作” 是主机断开从机还是从机主动断开?
3、死机具体的现象是什么?仅RF死机还是全部都不工作?
babober:
回复 Viki Shi:
我们的工程程序是在3.2版本进行的,后续尝试更新SDK试试
断开连接是手机APP端主动断开,芯片做得是从机,正常的断开在从机端都能收到相应的事件:GAP_LINK_TERMINATED_EVENT。
死机应该只是RF死机,我们的工程代码串口仍然可以工作,读写flash也没得异常,就仅仅是芯片不能广播、不能被连接了。
刚刚从别的渠道获得消息,可能是由于此版本的SDK存在问题,正在测试新版本的SDK
Viki Shi:
回复 babober:
好的,等待你的反馈
babober:
回复 Viki Shi:
目前测试出100+的连接断开次数,暂时未出现此现象,但是基于此问题,既然存在RAM未被释放完全的现象,我们觉得100+的次数也可能不稳定,目前纯手工测试费时费力,有没有类似的测试脚本可供使用呢?
Viki Shi:
回复 babober:
据我所知,没有此类脚本