基于ADK6.3 QCC512x/QCC302X/QCC303X Earbud 工程OTA升级操作

蓝牙固件空中升级(OTA)涉及到蓝牙无线通信、固件外存分布、固件内存分布(定制链接脚本)、固件二次引导等技术,需要开发人员深入理解蓝牙单芯片的存储架构、启动引导流程、外存设备驱动和产品电路设计等领域知识。完整和完美地设计和实现OTA,是一名嵌入式物联网软件工程师最好的技术体现。

OTA意义

固件空中升级是如此重要,在于:
1.修复产品缺陷。
2.丰富产品功能,增加用户粘性。
3.迭代的产品升级,也有助于快速切入市场,降低整体开发成本。


OTA实现流程
1、OTA升级操作我们可以参考高通提供的“80_CG373_1”文档,大体的操作流程,参考下图。


2、修改av_headset_ui.c文件,配置一个进入DFU模式的事件。


3、From MED Setup DFU Security(只需要构建一次)
<通过间接调用dfu_detu .py脚本,MDE可以生成RSA 2048私钥和公钥和其他源文件常量,DFU文件用于签名验证。>

Navigate from the MDE GUI to: Tools / Setup DFU security.


4、选择要找到或创建DFU安全文件的位置(选择默认的dfu目录就可以):

5、选择“Replace” (第一次是不会弹出该对话框)


6、Build the DFU image

         <生成一个.bin文件,也就是我们需要升级的bin文件。 生成之前需要更改好我们需要修改的部分>

Navigate to: Tools / Build DFU and create a DFU file:


7、Choose the location where the DFU security files are to be found(选择默认dfu目录):


8、选择Only sign the DFU file header.点击Proceed。



9、选择需要升级的部分,点击Proceed.


10、选择加密还是不加密。(默认是不加密, 如果选择加密建议参考上述文档)


11、此时会生成我们需要的bin文件。


12、将bin文件拷贝到手机的根下的一个目录里。

13、手机端开启蓝牙,连接耳机。长按SYS键(具体的需要看客户的UI定义,如下代码所示),耳机进入DFU模式。然后插上充电线(放入充电盒)。


14、打开GAIA软件,点击Connect BR/EDR (SPP升级),选择设备升级。


15、Select the Upgrade service when Application ready is displayed.


16、选择升级的bin文件。


17、Select the Upgrade configuration. Choose the recommended configuration for Optimized Upgrade over BLE and tap the START UPGRADE button to start the upgrade process.

18、After initializing the upgrade process, the file is uploaded onto the device.


19、上述如果成功了,耳机会自动复位,之后你会发现我修改的东西已经生效了。

备注(可能是当前ADK的一个BUG):

测试发现,耳机在进入DFU模式之后,需要插上充电线,才能正常升级。建议在升级过程中,其中的进度条出来之后,拔掉充电线。当充电完成之后耳机会自动重启。如果不拔掉充电线,发现在第二次升级的时候会连接失败,有时会报如下问题。没法进行第二次OTA升级。




★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论

我很菜

我很菜

2021年6月17日
前辈好,可以给个联系私聊方式吗,诚心想学高通的软件,刚入门,非常感谢。
阿满

阿满

2020年9月28日
文章写的很详细,看一遍就明白了,希望以后写更多文章出来