使用的工具
BlueSuite中的“DFUWizard.exe”,此工具可以实现有线形式的DFU升级,
具体形式:串口(UART) 和USB 2种;
Note:上图中的Flash指的是BT chip内部flash;
有线升级DFU优势:
1、Device不需要erternal flash;
2、User不需要理解ptn、partition、gaia等相关知识点;
3、有线DFU升级中,密钥的使用是可选项,但一般都默认使用密钥进行签名;
DFU升级操作:
在之前的系列文章中,我们已经介绍了如何制作DFU文件及相关注意事项,当前不再复述;
Device(模组)的UART 设置:
1) UART升级要求当前device中的PS Key 中“HostInterface” 选择为“VM access to the UART”;
2) 设置Baud Rate, 当前Baud Rate 大小将直接影响DFU 升级耗时;
3) 工程属性中的“Transport”应选择为“Raw”;
4) 注意PSKey (0x01c2)的值,一般设置为0x0880;
硬件连接:
device(模组)的TX 、RX、GND需通过串口工具连接到PC;
PC端操作
BlueSuite中的“DFUWizard.exe” 一般默认安装在“C:\Program Files (x86)\CSR\”文件夹下,如
Note: “DFUWizard.exe”建议使用管理员身份打开,不然后续DFU 升级过程中,当选择备份device 原有FW时,会导致创建文件夹失败;
以下是exe打开的样子:
点击“下一步”,在出现在菜单中选择Com port(RS-232);
Note:如果PC 端没有检测到com 口存在,将提示以下错误:
在实际中:我们使用USB 转串口工具连接device(模组)的TX、RX 、GND;而上截图提示的没有找到com口,指的是没有找到串口工具;而实际串口工具是否和模组的TX、RX 、GND正常连接,则不再上面的检测范围;
当检测到PC有串口时,请基于实际,选择当前和Device连接的com口,并选择“下一步”;
点击“下一步”出现的画面,其内容无法选择,只能默认;这里涉及旧FW保存,所以建议使用管理员身份打开exe, 不然会出现文件夹创建失败的问题点;
后续步骤,按照菜单提示一步步操作(操作前,请先确认device已进入DFU Mode)即可完成DFU升级。当升级完成,device(模组)将自动重启;
注意事项小结:
1:更新前,一定要确认当前板子FW 的loader 和stack是使用和DFU文件相同密钥签名过的loader 和stack,不然无法和DFU文件中的签名匹配;
2:最好使用管理员权限执行“DFUWizard.exe”,不然DFU升级时的第一步保存当前板子FW就会失败,原因是创建保存文件夹失败;
3:执行DFU升级前,需确认device(模组)已上电并进入DFU 模式(进入方式基于板子实际,如使用Button操作等),实现进入DFU Mode 的API是:BootSetMode(0);
Attention:
BlueSuite升级时保存的旧DFU文件,不建议用于后续DFU升级。因笔者曾经使用dfuunbuild指令反解析了DFUWizard.exe保存下来的旧DFU文件,发现其内容有变化,不再适用于后续升级;