本例适用与芯片: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升级精讲相关推荐

  1. qcc304x笔记之ota升级(十)

    目录 OTA升级说明 生成oem key 制作dfu升级文件 ota升级 如何进行单耳升级 OTA升级说明 生成oem key 与之前csr.qcc的芯片一样&

  2. QCC30DFU流程android说明,qcc512x qcc302x qcc303x earbud 软件GAIA OTA DFU 空中升级实现方法以及升级步骤...

    QCC512x QCC302x QCC303x earbud 软件GAIA OTA DFU 空中升级实现方法以及升级步骤 概述 OTA只能升级部分,不是所有的都可以OTA.如PSKEY区,蓝牙地址,蓝 ...

  3. mt4双线macd_【名师讲堂第三季】第六期:基于MACD指标的买卖策略精讲

    <名师讲堂>第三季内容升级,重磅回归,每周三.周五为您准时呈现! 在名师讲堂的第一季,我们详细介绍了有关K线组合.道氏理论和趋势相关的交易信号,名师讲堂的第二季,我们详细介绍了有关波浪理论 ...

  4. 【信息资源管理】单选多选,精讲

    [信息资源管理]单选多选,精讲 J1 J2 J3 J4 随堂考 作业 J5 随堂考 J6 随堂考 作业 J7 J8 J9 J1 1.支配人类社会发展的三大基本要素是(D)A. 资源.人力.资本 B. ...

  5. CSR8670学习笔记:OTA升级固件

    为了方便大家学习,现与我爱蓝牙网联合推出[QCC300x/CSR867x/QCC30xx/QCC51xx开发板]. 技术交流QQ群号:743434463 开发板会员QQ群号:725398389(凭订单 ...

  6. ipad一直卡在白苹果_IOS checkm8漏洞越狱 典型应用案例之OTA升级造成白苹果修复案例...

    苹果设备OTA升级系统造成白苹果的现象屡见不鲜,给广大的手机用户造成诸多困扰,在这里解释下什么叫OTA升级,通俗讲,就是你的苹果手机提示你有新的版本,通过WIFI或者4G的网络条件下手机自己进行下载新 ...

  7. 实现NRF52832蓝牙DFU无线升级

    实现NRF52832蓝牙DFU无线升级 需要使用到的工具 选用相关工程 工具安装 BootLoader固件生成及DFU升级操作 需要使用到的工具 nrfutil(生成私有秘钥) make工具(Wind ...

  8. Android OTA升级原理和流程分析(五)---update.zip包从上层进入Recovery服务

    转载自:http://blog.chinaunix.net/uid-22028566-id-3533854.html 文章开头我们就提到update.zip包来源有两种: 一个是OTA在线下载(一般下 ...

  9. OTA升级二——阿里云端OTA配置及应用

    前文简述了STM32的无线下载原理及实现方法,在此基础上,使用阿里云的OTA下载服务提供整包下载功能(注:由于单片机Flash只能全片擦除,无法讲写0的位单独改为1,因此无法实现差分下载,所以没有深入 ...

最新文章

  1. redis便捷启动,shell启动redis
  2. px4原生源码学习四--Nuttx 实时操作系统编程
  3. windows查看系统版本号
  4. MySQL基础——DDL语言学习\数据库的建立\MySQL数据类型\MySQL常见约束\表的增删改
  5. matlab的数值计算方法,数值计算方法中的一些常用算法的Matlab源码
  6. ajax js图片上传到php,Ajax上传并预览图片(附代码)
  7. 程序人生001--点滴感悟-随笔01
  8. 怎么安装mysql5.6.19_centos6.5 rpm安装mysql5.6.19操作及步骤
  9. 51单片机之《概述》
  10. ies文件 vray_光域网ies文件免费
  11. 【开源之美】nanomsg(2) :req/rep 模式
  12. 抖音实战~搜索页面~扫描二维码
  13. 关于星巴克在故宫开店
  14. yy账号找回方法详解
  15. 算法训练一(贪心、二分)(含解题思路)(上)
  16. 科目三考试经验与技巧——长春长德科目三考场
  17. 投资 3-- 复利的奇迹的股市盈利生涯
  18. Python中metrics的用法
  19. ACM在线评测系统 各大高校的ACM在线测评系统
  20. linux找不到镜像文件,为什么启动u盘找不到镜像文件_u盘启动找不到映像文件的解决方法...

热门文章

  1. 刘汝佳 例题7-1 除法(暴力解法)
  2. LoadRunner关联详解
  3. 阿里云大学安全课程-阿里云首席安全研究员吴瀚清:WannaCry事件最“细思恐极“的一个事实是?
  4. LintCode入门题目
  5. 兴趣探测的模型化探索
  6. 技术人攻略访谈三十八-许式伟:十一年逆流顺流,首席架构师到CEO
  7. Python sqrt()函数的使用
  8. Ubuntu 16.04 64位+Qt 5.7.1+opencv 3.2.0 + opencv_contrib 3.2.0
  9. 对timedelta64的理解
  10. cs1.5服务器指定ip,CS1.5 IP 服务器