WQ7033 固件空中升级OTA

WQ7033 空中升级介绍

OTA(Over The Air)空中升级, 是通过无线的方式对固件进行升级DFU(Device Firmware Update), 升级固件经过打包后 手机通过SPP或BLE的方式传给芯片端, 芯片接收到新固件的会放在芯片的FOTA区域, 数据接收并校验完成后重启, 开机启动时解压复制到对应的FW区域

WQ7033官方的OTA可以支持无感升级, 可以一边播放音乐一边升级. 还可以支持升级失败可以回退, 不影响旧程序的使用. 因为是经过压缩的, 所以需要的FLASH资源也比传统双备份升级的方式要少

WQ7033 OTA BIN文件打包

在物奇UI工具中选择OTA选项导入wpk, 可根据需要选择升级的images区域来生成OTA bin文件, 这里只选择了tws_core0的images, 选择完成后点击export导出OTA BIN文件放入手机内存中, 以便后面手机上选择升级的文件
OTA BIN文件打包

WQ7033 OTA 升级

WQ7033的OTA代码主要是放在app_wqota.c文件中, OTA代码在SDK中是开放可见的. 下面从SDK代码简单看WQ7033 OTA升级的流程

WQ7033 OTA 初始化

SDK代码在app_main_task_func()初始化的时候就会进入app_wqota_init(), 进行OTA SPP和BLE数据通道的初始化
OTA初始化

SPP的OTA可以不需要特殊的操作, 直接配对手机使用SPP升级即可. BLE的OTA需要使用按键配置一个OTA用户事件打开BLE OTA的广播
开启OTA广播

WQ7033 OTA 命令

目前SDK中支持的OTA过程中手机下发给设备的命令
OTA命令
OTA命令在handle_command()函数中解析
OTA命令解析

WQ7033 OTA 升级步骤

  1. 设备与手机APP连接(貌似目前只有安卓APP), 这里选择的是SPP连接, 先连接上系统蓝牙, 再APP进行SPP扫描界面可以扫描到已经连接的设备
    耳机与APP连接

  2. 点击连接后进入升级界面, 选择将要升级的OTA BIN文件, 然后点击右上方的升级按钮

  3. 升级开始过程, 手机APP端会依次发送 读取固件信息指令(OPCODE_OTA_GET_DEVICE_INFO), 读取设备升级文件标识信息(OPCODE_OTA_GET_FILE_INFO_OFFSET), 查询设备是否可升级命令(OPCODE_OTA_INQUIRY_IF_CAN_UPDAT). 耳机会回复VID/PID信息, 将耳机电量信息、耳机ota空间是否不足等信息返回给手机, 手机APP端会根据耳机端回复的信息决定是否能继续升级
    升级过程

  4. 当满足条件, 可以升级的时候, 手机APP端会不断发送升级固件数据块命令给到耳机(OPCODE_OTA_SEND_FIRMWARE_BLOCK), 设备端接收到手机发来的OTA固件数据块会做校验, 同步, 存储等处理.

  5. OTA BIN文件全部接收完成, APP端会依次下发读取设备升级状态命令(OPCODE_OTA_GET_REFRESH_FIRMWARE_STATUS)和 获取双耳同步状态命令(OPCODE_OTA_GET_SYNC_STATE = 0xE8), 设备端判断主从同步校验结果并将结果返回给APP端, 当双耳校验都成功时, 则APP提示升级成功
    升级成功

  6. 升级完成手机APP端下发重启命令(OPCODE_OTA_REBOOT), 耳机重启完成后会由SBL切换解压固件, 覆盖原来固件区域

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小的代码里面挖呀挖呀挖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值