用BLE-CC254x-1.4.2.2,使用peri_observ模式,在BLE连接状态下会出现突然断开连接,且无法再广播的情况,定位问题在于协议栈在上报GAP_LINK_TERMINATED_EVENT 时,reason为LL_STATUS_ERROR_CONN_TIMING_FAILURE。这个问题如何避免,或者后续采用除重启外其他方法来恢复?
Viki Shi:
根据新版本协议栈的release note,有好几个可能会造成此问题:
– Update the controller to avoid deadlock when control procedure was happening at the same time as an encryption request. (BLESTACK-2273).– Update the bond manager to avoid disconnection when the non-volatile memory is full. (BLESTACK-908, BLESTACK-4103).
– Fixed an issue that prevented establishing a connection with certain parameters. (BLESTACK-953).
– Fixed an issue where the device can hang if a termination indication (unencrypted) is sent right after an encryption procedure has started. (BLESTACK-4421).
建议升级到最新版协议栈,再测试看看问题是否依然存在
user6103942:
回复 Viki Shi:
现在最新的版本是哪个版本?
Viki Shi:
回复 user6103942:
v1.5.0
Viki Shi:
回复 user6103942:
v1.5.0
user6103942:
回复 Viki Shi:
现在有没有API能获取到stack已经出错无法广播了,1.4.2.2
现在产品不能轻易切换到1.5.0
user6103942:
回复 Viki Shi:
用了1.5.0,问题依然存在
Viki Shi:
回复 user6103942:
连接终止后需要再次开启广播,应用程序中或者GAPRole中这部分有没有修改?另外设备连接多久以后断开连接的,有没有其他任务阻塞了BLE,比如说串口打印?
user6103942:
回复 Viki Shi:
广播开启的
设备连接多久以后断开,没有固定时间,有的长,有的短
没有其他任务阻塞ble
同样的代码,使用CC2541_BLE_peri.lib,不启用扫描功能,就从未出现这种错误
Viki Shi:
回复 user6103942:
主设备是什么,以及能提供一下 发生问题时的sniffer log吗?