CSR8670 /CSR8675 升级文件DFU制作

本文主要讲解在ADK_CSR867x.WIN4.4.0.17下,

验证CSR8670 sink程序的HID DFU功能,

用的工具为ADK_CSR867x.WIN.4.4.0.17\tools\bin\HidDfuCmd.exe

对于CSR8670芯片,USB升级(包括HIDDFUDFUwizard)是不需要外挂FLASH的,OTA是需要外挂FLASH的。

操作步骤:

1)拷贝以下四个文件到ADK_CSR867x.WIN.4.4.0.17\tools\bin\目录下。

2)用dfukeygenerate.exe -o keys命令在bin目录下生成两个随机的key文件:

2.1)将public key插入到loader中:如下命令

Dfukeyinsert.exe -v -o loader_signed -l loader_unsigned.xdv -ks keys.public.key

2.2)将private key插入到stack中:如下命令

Dfusign.exe -v -o stack_signed -s stack_unsigned.xpv -ks keys.private.key

上述两条命令完成后得到 如下的4个文件:

2.3)把刚刚生成的文件拷贝到ADK的其他文件夹

(e.g.D:\ADK_CSR867x.WIN.4.4.0.17\firmware\assisted\unified\gordon_signed)

2.4)用BlueFlash.exe loader_signed.xdvstack_signed.xdv烧录到板子上。

3)打开xIDE,打开sink工程,

3.1)在工程属性中firmware image位置填写上一步经过签名的stack存放的文件夹路径:

D:\ADK_CSR867x.WIN.4.4.0.17\firmware\assisted\unified\gordon_signed\stack_signed

3.2)可能需要改一下以下值,适用于CSR8670芯片

4) 将sink工程自带的default的psr文件

ADK_CSR867x.WIN.4.4.0.17\apps\sink\configurations\sink_system_csr8670.psr,复制到bin文件夹内。

public key插入到sink_system_csr8670.psr文件中:

Dfukeyinsert.exe -v -o sink_system_csr8670_signed -ps sink_system_csr8670.psr -kakeys.public.key

会产生sink_system_csr8670_signed.psr文件,

然后用pstool软件,将这个sink_system_csr8670_signed.psr文件merge到板子上。

5)xIDE将程序下载到开发板上。要先compile 确认没有Error,再Running.

 

6)设置板子触发进入Driverless DFU模式。

打开ADK configuration tool,添加以下事件:

保存后,将板子先放一边休息一下。

 

7) 接下去制作DFU文件。

sink下面的image.fs拷贝到bin目录下,

这个文件就是要升级的程序文件,如果没有修改代码,则这个可以不用(这里其实没有修改,但是也假装修改了吧)。

 

制作需要修改的psr文件,内容如下:

以上第一条是把 device name 改成“CSR8671”,

然后第二条必须添加&f002 = 00000000 0000 1000

 (1000 表示 CSR8670, 0200 表示 BC5MM)。

保存到bin下面,文件名为example_DFU_fw.psr

 

private key插入到example_DFU_fw.psr文件中:

Dfusign.exe -v -o dfu_fw_signed -ps example_DFU_fw.psr -ks keys.private.key

如果需要修改VMpsr,则需要将private key插入到vmpsr文件中,这里不升级,也就不需要执行下面的命令。

Dfusign.exe -v -o dfu_vm_signed -pa example_DFU_vm.psr -ka keys.private.key

 

private key插入到image.fs文件中:

Dfusign.exe -v -o image_signed -h image.fs -ka keys.private.key

 

生成DFU文件,完整的命令如下:

dfubuild -v pedantic -f image.dfu -uv<USB VID> -up <USB PID> -s stack_signed.xpv -d stack_signed.xdv -himage_signed.fs -p3 . dfu_fw_signed.stack.psr dfu_vm_signed.app.psr

由于这里不升级example_DFU_vm.psr,故直接用.代替,最终命令:

dfubuild-v pedantic -f image.dfu -uv 0x0a12 -up 0xfffe -s stack_signed.xpv -dstack_signed.xdv -h image_signed.fs -p3 . dfu_fw_signed.stack.psr .

 

VID PID可以通过设备管理器查看:

HidDfuCmd进行升级:

将开发板上电,用USB连接开发板,用之前配置的按键使其进入Driverless DFU mode

用以下命令进行升级:

HidDfuCmd.exeupgrade 0a12 fffe 0 0 image.dfu

完成后,可以看到设备名称改为了“CSR8671”,算是成功了。

=======================

需要CSR8670/8675的学习板【淘宝店:科飞工作室】。

高通蓝牙技术交流群:713094735

科飞开发板支持群:763757182(淘宝订单号入群,可获更多的资源)

=======================

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值