大家好、
当使用我们的自定义器件(具有 WiFi (cc3220)+ BLE (cc2640)射频共存)让 BLE 连接到 iPhone (iOS 11.x.x)时、由于意外的连接超时(将从 peripheral.c 接收到 GAP_LINK_TERMINATED_EVENT)、它真的不稳定。
我开始使用 simple_peripheral 示例项目(simplelink_cc2640r2_sdk_2_20_00_49)开发定制的 BLE 应用。
下面提供了一些信息、以查看是否有任何故障排除提示:
(1)根据 https://developer.apple.com/accessories/Accessory-Design-Guidelines.pdf 修改参数、如下所示
//自动 参数更新请求的最小连接间隔(单位为1.25ms、80=100ms)
#define DEFAULT_MIVEed_MIN_CONN_INTERVAL 16.
//自动 参数更新请求的最大连接间隔(单位为1.25ms、800=1000ms)
#define DEFAULT_RETOVE_MAX_CONN_INTERVAL 80
//用于自动参数更新请求的从器件延迟
#define DEFAULT_REGLED_SLAVE_LON_1
//自动参数 更新请求的监督超时值(10ms、1000=10s 单位)
#define DEFAULT_MODED_CONN_TIMEOUT 550
(2)检查了存储器大小(堆和任务堆栈= 2048B)、heapmgrMemMax 不超过总堆大小、堆栈大小在 超时发生后似乎没有溢出。
(3)使用 LiteBlue 应用扫描并连接到 DUT、无论 RSSI 范围从-1x 到-9x、仍然发生超时
(4)启用 cache_as RAM。
(5)定制图像也在 CC2640R2F LunchPad 上尝试、但在两小时后仍然意外超时(1分钟到30分钟比 DUT 好)。
(6)一线监听器日志:
e2e.ti.com/.../Capture_2D00_2019_2D00_04_2D00_10_5F00_1507_5F00_fail_2D00_1.zip