对于基于 CC2541的 BLE 外设、我们已将 BLE 堆栈从1.4.0更新为1.4.2.2。 为了简化最终用户的更新过程、我们决定通过设置 OAD_KET_NV_PAGES 编译器指令来保留绑定信息、如 SBL wiki 中所述。
虽然此配置适用于所有测试过的手机、但没有任何问题、但在更新到 Android 7.0后尝试连接 Sony Xperia 时、我们遇到了问题。 再也无法连接。
有一个小分析表明、如果我们完全擦除闪存并重新编程芯片(这意味着 SNV 区域被堆栈重新初始化)、一切都正常。
我们的印象是、新堆栈存在无效或未定义的 SNV 项(在与 Xperia/Android 7.0连接时会用到这些项)。
请注意、我们将讨论仅为堆栈保留的 SNV 项目(SNV ID <= BLE_NVID_GATT_CFG_END)。
在所有条件下、堆栈版本1.4.2.2能否与堆栈版本1.4.0的引导 SNV 区域正常工作? 是否提供了完全兼容性?