本文主要讲解在ADK_CSR867x.WIN4.4.0.17下,验证CSR8670 source程序的DFU功能,用的是DFUWizard。 第一步先要修改默认的source程序,以便能够使其触发进入DFU模式。进入DFU的模式有多种,可以通过HID命令的方式,也可以以按键触发的方式,其函数就是BootSetMode(0),如以下就是在默认source基础上,通过长按PIO11两秒使其进入DFU模式的代码(借用了进pairing模式的事件,仅供测试用,实际使用中不可取): 接下去擦除CSR8670的FLASH,然后用IDE把程序下载到CSR8670中。 用pstoolmerge以下两个psr文件: 同时修改以下两个pskey: i. PSKEY_USB_DFU_MODE,&013E为0000。默认为0001 ii. PSKEY_USB_DFU_PRODUCT_ID,&02CB为ffff。默认为fffe
然后重启板子,触发使设备进入DFU模式,就能在设备管理器中看到设备了: 说明CSR8670进入了DFUmode。
接下去制作DFU文件。 我们新建一个psr文件,把需要修改的pskey写到文件中: 以上第一条是把device name改成“qtil Audio Dongle”,然后第二条必须添加&f002 = 0000 0000 0000 1000(1000表示CSR8670,0200表示BC5MM)。 APP程序的升级,需要找到source工程下一个叫image.fs的文件,升级后这个文件会将之前老的程序覆盖。将image.fs和刚刚新建的psr文件一起拷贝到bluesuite文件夹下: 完成后用bluesuite下的dfubuild工具打包: 命令的说明如下: i. 其中-uv为厂商ID,CSR的是0x0a12; ii. -up为产品ID,CSR的是0x0001; iii. -f为输出的DFU文件名称,如test02.dfu; iv. -h为需要更新的app文件,如image.fs; v. -s为需要更新的stack文件,如stack_unsigned.xpv。 vi. –p3为psr更新参数:1、这个参数有3个子参数,其中第一个不需要,填为.,第二个是stack psr,优先级较高,第三个是apppsr,需要更新的就填写实际的psr文件名,不需要更新的就填为.,以空格隔开,如 -p3. stack.psr .,这里就只更新stack psr。 完成后生成升级文件: 接下去进行升级。 打开bluesuite下的DFUWizard工具: 按界面提示操作即可完成升级。 这里需要说明一点,以上演示并没有涉及到加密KEY的部分,如果需要加密,则需要插入key,这些操作请参考CSR的文档,如CS-101792-AN-1。 来源:https://mp.weixin.qq.com/s/-hr77xVJxjsWk5TwoBzkoQ 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
GMT+8, 2025-4-30 23:19 , Processed in 0.175576 second(s), 18 queries , Gzip On, MemCached On.
Powered by Discuz! X3.5
© 2001-2025 Discuz! Team.