QCC304X/QCC514X DFU/OTA升级精讲
本例适用与芯片:QCC304X QCC514X,其它系列原理应该相似
说明:
Earbud芯片的无线OTA(DFU)有两种模式:前端模式和后端模式;
- 前端模式:即耳机可以连听音乐边进行OTA,固件传输和校验过程不会影响耳机的正常使用,只有在上传过去的固件被生效或者写入指定flash位置时,耳机才会发生重启动作;
- 后端模式:即耳机需要先进入DFU模式再进行OTA,据说这种模式出错的概率更低,但要求用户必须先执行进入DFU的操作,并且UI也必须提供这样的按钮定义;该种方式的步骤为:
- 耳机取出充电盒与手机正常连接后,用GaiaClient连接到耳机;
- 通过UI定义让耳机进入DFU模式,然后尽快把耳机放入充电盒(或使之处于充电盒中的状态,即InCase状态),这时从手机端来看音频蓝牙连接会断开,耳机本身也会发生Disconnect事件;不过此时并未真正与GaiaClient断开连接(此时笔者认为应该是BLE和手机保持着链接);
- 放入充电盒后,尽快用GaiaClient上传固件,这后续的步骤就和前端模式下的操作一模一样了。详细步骤参考本文件后半部分。
- 首先获得工程源码
- 安装MDE工具及ADK,笔者安装的版本如下图。 一定要注意,ADK的版本不要安装太新的,因为太新的安装 包里的工具可能不完整,比如版本:ADK_Toolkit.WIN.1.1 Installer_1.1.2.40,里面就没有生成dfu的脚本文件,笔者就中过招。
- 安装bluesuit,笔者安装的版本为BlueSuite.WIN.3.3 Installer_3.3.5.817
- 解锁USB口调试,解锁办法为:
- 创建一个文本文件,假设路径为D:\key.txt,其内容为: 00000000000000000000000000000000
- 用管理员权限打开cmd, 然后切换到bluesuit的目录,执行如下指令,看到Success表示已经解锁成功;
- 用MDE打开一工程,笔者以QCC3040为例; 工程打开后,首先创建密钥,办法为:
- 点击MDE菜单中的ToolsàSetup DFU Security , 然后会出现两个对话框(如下图),一个是tk窗口,另一个为选择密钥文件存放的位置,我们直接点击OK按钮,采用默认位置,因为工程编译时会索引其产生的文件。
自动创建的密钥相关文件有:dfu-private.key, dfu-public.key, private.pem, public.pem, rsa_pss_constants.c;
- 配置好耳机的MAC地址,后重新Rebuild 整个工程(耗时会比较长);
- 工程Rebuild之后,需要Deploy All (Build->Deploy All),把所有相关文件都烧录到左右两侧的芯片中;注意烧录另一侧时,需要修改蓝牙MAC地址最后一个字节,并且此时不需要全部重新编译,只需要Build -->BuildAll 即可,这样会快很多。
- 如果只是需要制作DFU的升级包,可以不用部署;
- 如果需要生成工厂使用的文件,就需要部署左右两侧的耳机,然后能过BlueSuit中的NvsApp或者使用nvscmd来从左右两侧的芯片中把所有固件都Dump出来,这两个Dump出来的xuv固件才可以被用来做为工厂生产的文件,而不是DeployAll后工程目录下的flash_image.xuv文件,注意这两类是不一样的。
- 因为固件中的MAC地址是固定的,所以工厂生产时,烧录完两个耳机后,还需要修改MAC地址;
!!!!再次提醒,新的芯片必须烧录Dump出来的xuv文件,而不是Build出来的flash_image.xuv文件;
- 同时用USB口连接耳机到电脑,并确保电脑已经识别出来,可以用MDE来判断或者从设备表示里看,两者判断方法如下图所示:
- 编译完成后,点击菜单 ToolsàBuild DFU File来制作OTA升级包,其间会让你选择一些路径,采用默认路径。
- 然后是选择加密文件,对话框注释中有说明,笔者也没查到哪里显示为6.1或6.0,所以就采用了默认全加密:
- 然后是选择生成OTA升级包的文件,默认是全选的,这样生成的包会比较大,OTA时会占用时间比较长,因为通常情况下只是修改earbud.x2p文件,所以笔者只选了这一个来生成OTA文件,如下图,具体其它几个文件都什么意思,可以查看官方手册;
然后选择不加密:
- 点击Proceed后就会生成ota文件,日志如下,会看到Success及bin文件的路径,该bin文件即为ota长级包;
然后把bin文件复制到手机上,用GAIA Client 来升级(注意不是GAIA Control);
特别注意:升级的时候耳机不能放入充电盒或充电状态,并确保电量充足,且无需进入dfu模式,可以边听歌边升级(按手册讲需要进入dfu模式,实测下来不需要这样).
下面是GAIA Client一步步操作步骤:
- >确定升级包已经在手机上;
- >手机和耳机进入配对并连接,然后打开GAIA Client会看到耳机,若没有可以通过重新打开APP或者下拉刷新;
- >点击该设备,进入下面界面,显示耳机及app的信息;
- >点击下面的Settings按钮,进入设备操作菜单,如下图:
- >点击Software updates按钮进入ota文件选择界面,如下图:
- >点击SELECT UPGRADE FILE按钮来选择刚才的bin升级包,然后进入上传OTA文件界面,如下图:
- >上传完毕后,会进入固件校验界面,如下图,耐心等待,因为持续时间会有点长;
- >校验完成后,会弹出确认窗口,我们直接点击CONFIM即可
- >然后如果你在听音乐,会发现其中一个耳机没声音了,并随后发生了重启,
- >然后会再次出现一个安装升级包的确认窗口,这是因为升级包已经放在了指定位置,需要用户来确认是否生效,此步为最后一次放弃生级的机会,若确定长级点confirm即可,否则点abort来放弃升级;
- 升级完成后,会出现升级完成界面,如下图,至此两个耳机均以升级完毕。
注意:整个升级过程耳机都不能放入充电盒,并且用户可以连听歌边升级。
QCC304X/QCC514X DFU/OTA升级精讲相关推荐
- qcc304x笔记之ota升级(十)
目录 OTA升级说明 生成oem key 制作dfu升级文件 ota升级 如何进行单耳升级 OTA升级说明 生成oem key 与之前csr.qcc的芯片一样&
- QCC30DFU流程android说明,qcc512x qcc302x qcc303x earbud 软件GAIA OTA DFU 空中升级实现方法以及升级步骤...
QCC512x QCC302x QCC303x earbud 软件GAIA OTA DFU 空中升级实现方法以及升级步骤 概述 OTA只能升级部分,不是所有的都可以OTA.如PSKEY区,蓝牙地址,蓝 ...
- mt4双线macd_【名师讲堂第三季】第六期:基于MACD指标的买卖策略精讲
<名师讲堂>第三季内容升级,重磅回归,每周三.周五为您准时呈现! 在名师讲堂的第一季,我们详细介绍了有关K线组合.道氏理论和趋势相关的交易信号,名师讲堂的第二季,我们详细介绍了有关波浪理论 ...
- 【信息资源管理】单选多选,精讲
[信息资源管理]单选多选,精讲 J1 J2 J3 J4 随堂考 作业 J5 随堂考 J6 随堂考 作业 J7 J8 J9 J1 1.支配人类社会发展的三大基本要素是(D)A. 资源.人力.资本 B. ...
- CSR8670学习笔记:OTA升级固件
为了方便大家学习,现与我爱蓝牙网联合推出[QCC300x/CSR867x/QCC30xx/QCC51xx开发板]. 技术交流QQ群号:743434463 开发板会员QQ群号:725398389(凭订单 ...
- ipad一直卡在白苹果_IOS checkm8漏洞越狱 典型应用案例之OTA升级造成白苹果修复案例...
苹果设备OTA升级系统造成白苹果的现象屡见不鲜,给广大的手机用户造成诸多困扰,在这里解释下什么叫OTA升级,通俗讲,就是你的苹果手机提示你有新的版本,通过WIFI或者4G的网络条件下手机自己进行下载新 ...
- 实现NRF52832蓝牙DFU无线升级
实现NRF52832蓝牙DFU无线升级 需要使用到的工具 选用相关工程 工具安装 BootLoader固件生成及DFU升级操作 需要使用到的工具 nrfutil(生成私有秘钥) make工具(Wind ...
- Android OTA升级原理和流程分析(五)---update.zip包从上层进入Recovery服务
转载自:http://blog.chinaunix.net/uid-22028566-id-3533854.html 文章开头我们就提到update.zip包来源有两种: 一个是OTA在线下载(一般下 ...
- OTA升级二——阿里云端OTA配置及应用
前文简述了STM32的无线下载原理及实现方法,在此基础上,使用阿里云的OTA下载服务提供整包下载功能(注:由于单片机Flash只能全片擦除,无法讲写0的位单独改为1,因此无法实现差分下载,所以没有深入 ...
最新文章
- redis便捷启动,shell启动redis
- px4原生源码学习四--Nuttx 实时操作系统编程
- windows查看系统版本号
- MySQL基础——DDL语言学习\数据库的建立\MySQL数据类型\MySQL常见约束\表的增删改
- matlab的数值计算方法,数值计算方法中的一些常用算法的Matlab源码
- ajax js图片上传到php,Ajax上传并预览图片(附代码)
- 程序人生001--点滴感悟-随笔01
- 怎么安装mysql5.6.19_centos6.5 rpm安装mysql5.6.19操作及步骤
- 51单片机之《概述》
- ies文件 vray_光域网ies文件免费
- 【开源之美】nanomsg(2) :req/rep 模式
- 抖音实战~搜索页面~扫描二维码
- 关于星巴克在故宫开店
- yy账号找回方法详解
- 算法训练一(贪心、二分)(含解题思路)(上)
- 科目三考试经验与技巧——长春长德科目三考场
- 投资 3-- 复利的奇迹的股市盈利生涯
- Python中metrics的用法
- ACM在线评测系统 各大高校的ACM在线测评系统
- linux找不到镜像文件,为什么启动u盘找不到镜像文件_u盘启动找不到映像文件的解决方法...
热门文章
- 刘汝佳 例题7-1 除法(暴力解法)
- LoadRunner关联详解
- 阿里云大学安全课程-阿里云首席安全研究员吴瀚清:WannaCry事件最“细思恐极“的一个事实是?
- LintCode入门题目
- 兴趣探测的模型化探索
- 技术人攻略访谈三十八-许式伟:十一年逆流顺流,首席架构师到CEO
- Python sqrt()函数的使用
- Ubuntu 16.04 64位+Qt 5.7.1+opencv 3.2.0 + opencv_contrib 3.2.0
- 对timedelta64的理解
- cs1.5服务器指定ip,CS1.5 IP 服务器