查看: 1114|回复: 0
打印 上一主题 下一主题

STM32F4xx DFU 的一些使用心得

[复制链接]
跳转到指定楼层
沙发
发表于 2015-6-2 14:14:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
公司以前的产品ISP用的是串口,新的产品必须使用USB口,响应的ISP就改为 DFU 了,
开始想简单了事,直接套用 STM32 DFU 库, TNND 实际使用起来既不简单又费事,关键不稳定,要不停止响应,要不PC死机,它那个驱动还用ST PIV/VID 加密了,并且驱动没有源代码.
没办法只能仔细了解 DFU 了,原来 DFU 也是一个标准, 很多的手机固件更新就是通过 DFU 来的.既然是标准就选开源的了.

以 Windows 平台为例,开发 DFU 需要准备的工具和源代码.最终建成一个不依赖 ST DFU 库的 DFU 下载工具.

A. 主工具:
1.dfu-util
这个开源工具在 0.6 版本上实现了对 stm32 DFU 的有限支持,我们就以dfu-util为基础,开发出能够通过 DFU 下载程序,又不依赖 ST DFU 库的工具软件.
dfu-util 需要 libusb 1.0 支持.
下载地址:
http://dfu-util.gnumonks.org/releases/dfu-util-0.6-win32.zip

2.libusb
libusb 1.0 使用了 WinUSB 作为底层驱动.
http://sourceforge.net/projects/ ... b-1.0/libusb-1.0.9/

B.辅助工具:
1.ST DFU Demo 库, ST DFU 对普通 DFU 作了扩充为 Dfuse, 参考他的源代码可以补充 dfu-util 中不足的 ST 命令,比如 0x92 去除读保护命令.
http://www.st.com/internet/com/S ... /SW_DEMO/um0412.zip


2.libwdi
主要使用 libwdi 的 zadig 工具,安装或生成基于 WinUSB 或者 Libusb 的驱动程序.简化驱动程序生成.
git clone git://libwdi.git.sourceforge.net/gitroot/libwdi/libwdi

3.WinDDK
如果要从源代码重新构建所有的二进制文件, WinDDK 是必须的
http://www.microsoft.com/en-us/d ... ang=en&id=11800

目前在我的Window平台上,重新编译了 dfu-util 和 zadig 工具,DFU 下载比 232 快了很多. 原来 50s 的时间,DFU完成同样的功能 ~10s
附近是用最新源代码重新编译的 dfu-util 和 zadig , 对 DFU 感兴趣的朋友可以下载测试.

http://www.amobbs.com/forum.php? ... est=yes&_f=.rar
转载

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入中科因仑

本版积分规则

快速回复 返回顶部 返回列表