首页 > 编程知识 正文

CSR8675C-IBBH-R,如何连接dfu模式

时间:2023-05-03 19:06:15 阅读:38157 作者:3213

1 .概述DFU的全名是设备固件升级。 这意味着设备固件已升级,并且可以通过USB升级设备程序。 可以升级以下软件组件:固件协议栈3358www.Sina.com/VM APP应用程序3358 www.Sina.com/VM文件系统中的其他文件(语音指南、附加语言包

DFU协议由USB实现者论坛标准化为设备类规范,QTIL实现符合包括安全检查在内的标准。设备在制造时使用RSA公钥加密DFU文件,以便最终用户只能使用特定产品的DFU文件

Loader出厂时写入芯片,PS Keys存储系统配置,Firmware是固件协议栈,虚拟机文件系统包含虚拟机app和语音指导。

2 .使用dfu机制时可用的选项和限制(1) Loader无法更新。使DFU进程安全,加载程序始终存在且完好无损,因此可以在失败后重复DFU进程。

)2) Firmware可以更新,但不需要更新)DFU文件中可能没有堆栈,在这种情况下固件不会更新。如果缺省引导模式没有主机接口,则固件堆栈将始终包括在内。 否则,产品将没有堆栈、虚拟机和主机接口,无法正常工作。

)3) DFU文件中的PS Keys均可修改。

)4)如果DFU文件中存在VM文件系统(可以更新但不需要更新),则VM文件系统将被新的替换。 3358www.Sina.com/VM文件系统中的文件不能单独升级。 文件必须是连续的,没有间隙。

3.DFU升级工具(1) DFU向导:要启动DFU过程,用户必须安装CSR DFU驱动程序。

)2) hid dfu (hiddfucmd ) :不需要用户安装驱动程序,使用USB HID界面运行dfu。 hiddfucmd APP应用程序是使用USB HID界面升级设备的命令行工具。

4.PS Keys类型(1)不受保护的固件(FW )和虚拟机) VM ) keys: 这些keys不需要签名,但使用FW或VM密钥签名

)2)受保护的FW keys: 这些keys通过存储在loader中的FW公钥进行验证。

(3)受保护VWkeys ) http://www.Sina.com/通过存储在受保护FW keys密钥中的VM公钥来验证这些keys。

5 .环境准备(1)安装外部闪存的CSR8670、CSR8675开发板

)2) ADK4.0或更高版本

)3)要升级的文件

)4)命令行中提供的(tools)烂手套文件夹中的ADK工具

6 .生成生产固件

打开sink项目后,必须设置密钥以进入以下事件:

enterdfumode(USBdfu ) enterdriverlessdfumode ) USB-hiddfu )未签名的loader和stack是firmwareassistednified 将gordon中包含的或gordon文件夹下的loader_unsigned.xdv/.xpv和stack_unsigned.xdv/.xpv复制到其他文件夹中,然后从其中运行命令

用于生成DFU文件的工具位于安装目录下的tools烂手套文件夹中。 例如,ADK_CSR867x.WIN4.2tools烂手套等这些工具通常具有以下命令结构:

dfutoolnameoutputfilenameinputfilenameinputkey (1)创建dfu密钥对

生成dfukeygenerate -o keys,keys.private.key和keys.public.key

)2)将用于验证堆栈真实性的密钥插入loader

dukeyinsert-v-o loader _ signed-l loader _ unsigned.xdv-ks keys.public.key、loader_signed.xdv和loader_sey

)3)使用与插入loader的密钥相对应的密钥在stack上签名

du sign-v-o stack _ signed-s stack _ unsigned.xpv-ks keys.private.key、stack_signed.xdv和stack_signed.key

)4)验证虚拟机文件系统真实性的关键插头

入PS Keys
dfukeyinsert -v -o image_signed -ps image.psr -ka keys.public.key,生成image_signed.psr
(5)使用与插入到PS Keys文件中的密钥相对应的密钥对vm文件系统进行签名
dfusign -v -o image_signed -h output.fs -ka keys.private.key,生成image_signed.fs
(6)构建二进制镜像文件
vmbuilder -size merge.xpv stack_signed.xpv image_signed.fs,生成merge.xpv
生成的镜像文件包括:
1)插入密钥的loader
2)签名的Firmware Stack
3)签名的VM文件系统
签名PS Keys生成的image_signed.psr没有内置到生成的二进制镜像中,因此要生成生产图像,还需执行:
1)使用BlueFlash将merge.xpv文件下载到目标设备上
2)使用PSTool合并image_signed.psr
3)使用BlueFlash Dump出生产固件

7.生成DFU文件


(1)签署要包含在DFU文件中的PS Keys文件
dfusign -v -o dfu_vm_signed -pa example_DFU_vm.psr -ka keys.private.key,生成dfu_vm_signed.app.psr
dfusign -v -o dfu_fw_signed -ps example_DFU_fw.psr -ks keys.private.key,生成dfu_fw_signed.stack.psr
(2)对.fs文件进行签名
dfusign -v -o image_signed -h image.fs -ka keys.private.key,生成image_signed.fs
(3)生成DFU文件
dfubuild -v -pedantic -f image.dfu -uv -up -s stack_signed.xpv -d stack_signed.xdv -h image_signed.fs -p3 . dfu_fw_signed.stack.psr dfu_vm_signed.app.psr,生成image.dfu

8.DFU升级 8.1 USB升级(DFUWizard)

DFUWizard工具包含在安装目录下tools烂漫的手套文件夹中。(如ADK_CSR867x.WIN4.2tools烂漫的手套),DFUWizard是一个图形化用户界面程序,首先按键让设备进入DFU模式,按照提示操作即可。

8.2 USB-HID升级(HidDfuCmd)

工具包含在安装目录下tools烂漫的手套文件夹中。(如:ADK_CSR867x.WIN4.2tools烂漫的手套),按键让设备进入DFU模式,使用命令行执行以下命令:
HidDfuCmd upgrade 0a12 fffe 0 0 image.dfu,选择Yes,等待两分钟左右(有进度提示),升级完成。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。