1. QCC3000 系列升级方式有两种: 1) 通过安卓/苹果手机的GAIA APP 软件OTA 升级。 2) 通过QCC3000 的USB 接口以USB HID 方式直接升级。 参考文档:80-CF065-1 QCC300x Software Upgrade User Guide.pdf 升级的内容包括: ▪ Applications in the external flash ▪ ROM Firmware patches (provided by Qualcomm) ▪ ROM DSP patches (provided by Qualcomm) ▪ Customer file systems in external flash ▪ Audio prompt data files in external flash 以QCC3008 为例讲解USB HID 升级PSKey 操作方法,(QCC3001〜3008 方法是相同的)。开发板通过SPI to USB 烧录器连接到电脑的USB 接口上,如图所示。 ![]() 2. 开发板,把电源开关拔到ON 处,按下VREG EN 开机 键,开机。 3. 运行擦除命令nvscmd erase 清空Flash,然后使用ADK_QCC300x.WIN.1.0.167 的IDE 编译speaker_qcc300x.xip 工程到开发板中, 属性用默认的就可以。 ![]() ![]() 4. 使用PSTool 软件烧录QCC3008 的配置文件 C:\ADK_QCC300x.WIN.1.0.167\apps\sink\configurations 中的qcc3008.psr。 特别要注意:不能烧录系统psr: sink_system_qcc300x.psr 因为在 OTA 升级之前必须将“implementation store pskey”里面的 psk 值都 删除掉,因为我们升级的 PSK 都是“Implementation store pskey”里面的值。 如果客户想在生产线中更新 pskey,他们应该保持 Implementation store pskey 为空,并且只通过 DFU 更改文件系统 pskey。然后,每次更新文件系 统 PSKY 时,不必删除原来的 PSKEY。 sink_system_qcc300x.psr 带有“implementation store pskey”里面的 psk 值, 如果烧录的话就要进入此模式下,把需要升级的PSKey 值清空了。 否则升级将会无法成功的。 ![]() ![]() 如果升级audio_prompts.xuv 和 VM应用可参考文档:80-CF065-1 本文以升级PSKey值(蓝牙设备名)为例,把QCC300x改为QCC3008。 在Stores 的All 模式下可以看到设备名:QCC300x 但在Implementation only 模式下,此PSKey 值是没有值的。 ![]() ![]() 5. Create a OEM public/private key pair 文件 cd C:\ADK_QCC300x.WIN.1.0.167\apps\sink 进入sink 目录 输入建立文件命令 dfukeygenerate –o oem 再输入至少63 个字符,再回车 Output: ■ oem.public.key ■ oem.private.key ![]() 6. Convert public key file to PS keys 文件 输入转换文件命令dfukeyinsert -v -o oem_key -ka oem.public.key Output: ■oem_key.psr ![]() 7. Write the PS key values into the device PS store: 输入烧录文件命令pscli -usb 295453 merge oem_key.psr 特别注意:295453 为SPI 烧录器的ID,也可以用PSTool 工具烧录oem_key.psr。 ![]() 8. 把要修改的psr 文件打包成psa 文件,再打包xuv 文件。 可参考文档:CS-334172-UGP2 CSRA64xxx A11 SQIF Configuration User Guide.pdf 1),Create a new folder, for example, pskeys, to put the PSFS file in。 2),把PSFS file :sink_system_qcc300x.psr 放到pskeys文件夹里。 3),在sink_system_qcc300x.psr里修改对应数据,保存即可。 ![]() 4), 把psr 文件打包成psa 文件,psfscmd.exe psr2psfs 输出 输入 特别注意:psa 文件需要命名为sys_qcc300x.psa, 与PSFS-NAME0 里的 值保存一致,不然升级后PSKey 还会是原来的值。 ![]() ![]() 5), 把psa 文件打包成xuv 文件, 命令:packfile 打包后的文件命名为: psfskeys.xuv ![]() 9. 在xuv 文件目录下,建立upgrade 文件, 文件后缀名为 .upg 。 在upg 文件里指定要升级的分区, 注意格式为: 逻辑分区号 逻辑分区类型 文件名 逻辑分区号对应3.1.2 表格 , 逻辑分区类型对应4-2 表格。 ![]() 10. 创建 upgrade xuv 文件, 命令:UpgradeFileGen qcc3008.upg qcc3008_upg.xuv ![]() 11. 使用第5 步生成的密钥去加密xuv 文件。命令: dfusign -v -f -u -h qcc3008_upg.xuv -o qcc3008_upg_signed.xuv -ka oem.private.key ![]() 12. 把加密后的xuv 文件转换成bin 文件, bin 文件才是真正升级使用到的文件。 升级是把bin 文件下载到Flash 中对应的分区里。 命令:xuv2bin -d qcc3008_upg_signed.xuv qcc3008_upg_signed.bin ![]() 13. 再次用PSTool 工具在Stores 里的Implementation only 模式下,确认将要修改 的PSKey 值是空的,如果有值,则需要删掉。 ![]() 14. QCC3008 保持在开机的状态下插入USB 即可, 自动识别为HID 设备。 不需要配置DFU 事件,也不需要进入DFU 模式中, 正常模式即可。 15. 在设备管理器中找出QCC3008 的USB Vendor ID 和USB Product ID。 其中 0A12 为USB Vendor ID, 1243 为USB Product ID 。 ![]() 16. 使用USB HID 升级命令: HidDfuCmd.exe upgradebin 0A12 1243 0 FF00 qcc3008_upg_signed.bin 输入命令后,会询问是否想要升级, 输入 y 再按下enter 键 ![]() 17. 升级完后会自动复位重启,显示upgrade succeeded,表示升级已成功。 然后用 PSTool 工具在Stores 里的All 模式下,看到设备已改变。 ![]() 来源:https://www.wpgdadatong.com/cn/blog/detail?BID=B0939
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
GMT+8, 2025-4-30 23:24 , Processed in 0.293016 second(s), 17 queries , Gzip On, MemCached On.
Powered by Discuz! X3.5
© 2001-2025 Discuz! Team.