326159487 发表于 2012-12-31 18:52:07

记录一下CSR蓝牙做DFU的流程

一、DFU flow chart详情 参考:61_AN092b_DFUOverview.pdf。
二、flow chart 解释:1. 产生 .DFU文件 :DFU文件由多个private key files;pskey files;firemware files;app files组成.一个DFU文件可为不同型号的BC做 DFU。PC端的 DFU SERVER 程式会自动选择 正确的 BC做 软体升级。以下是生成 .DFU文件的步骤 1.1生成 private publickey files:在MS DOS 模式下输入dfukeygenerate -v -o my_stack_key-r /dev/random得到my_stack_key.private.key和my_stack_key.publict.key 2个key文件。详情参考:\CSR\DFUTools\DOCs\dfukeygenerate.html1.2插入public_key到unsignedloader.在MS DOS 模式下输入dfukeyinsert -v -o loader_with_key-l loader_unsigned.xdv -ks my_stack_key.public.key也插入public_key到需要保护的PSKEY文件。详情参考:\CSR\DFU Tools\DOCs\dfukeyinsert.html1.3 Signing Stack Software在MS DOS 模式下输入dfusign -v-o stack_signed -s stack_unsigned.xpv-ks my_stack_key.private.key详情参考:\CSR\DFU Tools\DOCs\ dfusign.html1.4 BUILD DFU FILE在MS DOS 模式下输入dfubuild-v -pedantic -t 3 -f spp8v2.dfu -uv 0xa12 -up 1 -ui "SPP8 V2.0" -s stack_signed.xpv –a spp8v2.app其中stack_signed.xpv 是需要升级的 stack软体,spp8v2.app是需要升级的应用软体。执行后得到可以做DFU的文件:spp8v2.dfu如果需要修改pskey的话,那么就加上-p3选项,这个选项需要带三个参数,第一个表示受保护的pskey,第二个表示stack的pskey,第三个表示app的pskey。如果需要更改,就填写对应的pskey文件名,不需要的话用"."代替,例如我现在需要更新stack和app中的pskey,那么就使用如下格式-p3 . stack.psr app.psr
但是我们一般都放在stack.psr里面,它的权限比较高,可以确保我们的pskey能够被更新到。详情参考:\CSR\DFU Tools\DOCs\ dfubuild.html
2. BC连接 PC:选择BC的USB或者UART连接到 PC的USB或者 UART,同时只有其中一个host interface有用.
3. 设置BC,HOST INTERFACE 为 USB或则 UART:设置bootmode0 为 DFU 模式.open uart or usb host interface设置bootmode1为 default启动模式.以下是透过USB做DFU的相关PSKEY设置项&F000-&F002=00000000 0000 0040// boot_mode_list0&4b0 = 1f9//boot_mode_table0 USB HOST INTERFACE&4b8 = 2// boot_mode_list1&4b1 = 1f9//boot_mode_table1&4f8 = 4// boot_mode_list2//&4b2 = 1f9//boot_mode_table2//&538 = 2
4.BC进入 DFU 模式:在应用软体中让BC从bootmode0重新启动。
5.DFU处理启动DFUWIZARD程式(或者自己制作的DFU SERVER),选择DFU INTERFACE:usb or uart.如果是透过UART做DFU需要在startdfuwizard 前关闭与dfuwizard使用同一UART的程式。另外,目前toshiba的DRIVER与CSRUSB DRIVER有冲突。所以如果透过USB做DFU需要 uninstall Toshiba的DRIVER。选择好 DFU INTERFACE后一路 “NEXT” 即可。如果 DFU成功 。DFUWIZARD最后会出现 “DFU SUCCESSFUL”的 提示讯息。
6.DFU完成 如果DFUWIZARD 提示“DFU SUCCESSFUL”。BC将会重新以正常模式启动,并运行upgrade的 软体。

bidezhi7777 发表于 2013-4-24 23:45:13

谢谢分享,学习中!!!!!!

leeleo 发表于 2013-5-4 18:38:08

笔记,自己亲自操作过程,很实用。我试试看看,有何一起讨论

九头鸟 发表于 2013-9-1 02:17:07

谢谢分享,学习中

smx 发表于 2013-10-20 23:04:26

学习一下。

chrischan1911qq 发表于 2013-10-20 23:24:45

Thanks for sharing.

LXQ 发表于 2013-10-21 11:09:22

学习。。。。

gwgjzhang 发表于 2013-10-21 14:07:23

参观学习,参观学习。

dvtsh 发表于 2013-10-23 01:43:52

这个确实有用,谢谢分享





神奇的:Opera/9.80 (Windows NT 6.1) Presto/2.12.388 Version/12.16(zh-cn)
┈─━ 你的幸福是我的快乐!(+^_^*)
——┃-俺为尾巴代言|         

whljsh 发表于 2013-10-23 08:44:48

参观学习,参观学习。
页: [1] 2 3 4
查看完整版本: 记录一下CSR蓝牙做DFU的流程