Files
phaten-audio/zh/docs/faq/xmos_firmware_upgrade_with_dfu.md

71 lines
2.5 KiB
Markdown
Raw Normal View History

2025-04-29 16:11:32 +08:00
---
title: 使用DFU对XU316进行固件升级
---
# 使用DFU对XU316进行固件升级
这里主要针对 Windows 环境下 的固件升级;其它电脑系统请参考如下链接
[XMOS DFU](https://www.xmos.com/documentation/XM-014926-PC-1/html/doc/programming_guide/tutorials/freertos/examples/dfu.html#dfu)
必要条件:电脑环境必须是 Windows 7 及以上,越新越好
## 一 准备
Windows 下升级 需要如下工具:
- [zadig-2.8.exe](/assets/download/zadig-2.8.exe)
- [dfu-util-0.11](/assets/download/dfu-util-0.11-binaries.tar.xz)
## 二 升级固件
### 2.1 zadig设置
1. 升级固件前,请先将数据线连接正常。
2. 再打开的 Zadig 工具上 选择如图
![zadig设置图片](/assets/images/screenshots/zadig_setting.png)
3. 点击图中的 Reinstall Driver 等待提示成功即可
### 2.2 通过 dfu-util 升级
1. 进入到 dfu-util 可执行文件的根目录
dfu-util-0.11-binaries\win64或者dfu-util-0.11-binaries\win32根据你的windows版本选择。以下以win64版本进行说明.
2. 输入命令 `dfu-prefix.exe--version`
3. 得到提示"please report bugs to http://sourceforge.net/p/dfu-util/tickets/", 就表示成功
4. 将要升级的固件复制到dfu-util-0.11-binaries\win64此文件目录下
5. 输入命令:`dfu-util -e -d 4000 -a 1 -D example_ffva_ua_adec_upgrade.bin`
其中`example_ffva_ua_adec_upgrade.bin`是可以替换的内容,是需要升级的实际固件名称
6. 运行后 **得到下面的提示,表示升级成功**
```bash
dfu-util 0.11
Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2021 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
Warning: Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release
Opening DFU capable USB device...
Device ID 20b1:4001
Run-Time device DFU version 0101
Claiming USB DFU Interface...
Setting Alternate Interface #1 ...
Determining device status...
DFU state(2) = dfuIDLE, status(0) = No error condition is present
DFU mode device DFU version 0101
Device returned transfer size 4096
Copying data from PC to DFU device
Download [=========================] 100% 331776 bytes
Download done.
DFU state(7) = dfuMANIFEST, status(0) = No error condition is present
DFU state(2) = dfuIDLE, status(0) = No error condition is present
Done!
```