BLE-OTA升级流程与故障排查指南

5星 · 超过95%的资源 需积分: 5 16 下载量 90 浏览量 更新于2024-08-04 3 收藏 836KB PDF 举报
"这篇文档主要介绍了杰理BLE-OTA(蓝牙低功耗空中升级)的流程及常见失败情况,帮助开发者解决在进行BLE固件更新过程中遇到的问题。" 在BLE-OTA过程中,整个升级分为两个关键阶段: 1. **应用层阶段**:此阶段主要是通过BLE发送uboot的数据,将其写入VM(虚拟内存)区域。这是升级的第一步,一旦完成,设备会进入复位过程。 2. **uboot阶段**:在复位(cpu_reset())后,设备重新启动并尝试与BLE重新连接。一旦连接成功,系统会继续升级code区域。然而,复位可能导致IO状态失控,造成蓝牙断连。 当BLE在第二阶段无法重新连接时,可以通过以下方法排查问题: - 使用另一台安卓手机打开nRF Connect应用来搜索蓝牙设备,比较MAC地址和广播包内容,以判断问题是出在固件还是APP端。 针对BLE-OTA失败的常见情况,文档给出了以下解决方案: - **空间不足**:查看编译后的空间信息,并可能需要关闭不需要的功能,如EDR,减小VM区域大小,关闭4K保留,或者删除不必要的提示音文件以节省空间。 - **升级控制变量**:确保这些变量设置正确,以控制升级流程。 - **升级文件结构**:确保不接芯片和接芯片编译产生的信息一致。 - **广播包蓝牙名和MAC地址**:蓝牙名称过长可能超出限制,需要调整广播包结构;同时,EDR和BLE使用同一地址时需注意兼容性问题。 - **BLE多开时无法OTA**:在某些情况下,若多个BLE服务同时开启,可能会影响OTA,需要通过特定的条件判断和操作来避免冲突。 - **电源控制**:对于由主控IO控制MOS管供电的板子,可以配置升级跳转方式,选择直接复位或跳转到uboot。 - **其他未列出的细节**:文档中还提到了其他未详细展开的进阶设置,可能涉及更具体的硬件配置或软件参数调整。 通过理解和应用上述知识点,开发者可以更好地理解BLE-OTA流程,以及如何诊断和处理升级失败的情况。在实际操作中,务必根据设备的具体情况进行适配和调试,确保OTA升级的顺利进行。