你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【实战经验】通过 DfuSe 工具控制程序跳进 DFU 模式

[复制链接]
STMCU-管管 发布时间:2019-3-12 10:31
1 前言
: F  {' |0 ^, P7 y. R8 o7 e  ~7 U! ^1 p7 f: J# c3 }9 p8 u% X* K
我们之前经常有讲到过如何通过 USB 的 DFU 方式来对固件进行升级,在示例中我们通常是通过一个按键来触发 APP 跳转到 BOOT 从而进入到 DFU 升级模式。但是也有一种情况,客户的环境是没有任何按键或者其它触发条件,只有一 个 USB 口连接运行 windows 操作系统的上位机。这不,前不久就碰到这么个客户,下位机 MCU 端仅仅只有一个 USB 口连 接上位机,且 MCU 端与上位机之间的 USB 是常连的,并不能通过 USB 的拔插操作来触发 APP 的跳转,在此情况下,我们 又该如何来实现客户的需求?
3 Q& E% O( X% n& |* c5 u! q: i" K' l4 ^5 C& [, F
2 分析
0 l2 l+ O2 [6 q. m; |( v( ~6 r5 I; Y2 w
1.png
- [5 }9 J/ A# e, W* }* Q

* z  o- p4 f) [  U如上图所示,在 MCU 内部 FLASH 中,BOOT 与 APP 同时存在,BOOT 为 DFU 模式,负责对固件进行升级,而 APP(Runtime 模式)为客户的应用程序。当 APP 运行时,通过某个事件触发(DFU_DETACH)程序从 APP 跳转到 BOOT 中从而进入到 DFU 模式中。
( b7 F- E+ V: K, [) j  ]: u7 S% }9 {! n  M* F% C. g
2.png

, ~+ v& K1 \( d* z这个 DFU_DETACH 的操作在这里我们可以通过 PC 端软件 DfuSe Demo 来触发。" [0 f- N8 b8 }( P4 U0 q

% M2 H7 B' K& D6 V* p, J
3.png
& a; X1 F) G+ B3 \  M4 d
在进入到 DFU 模式时,DfuSe Demo 软件的运行界面如上所示,上图界面中有一个“Leave DFU mode”的按键,通过 它可以使运行在 MCU 的程序从 DFU 模式切换到 APP 中。同时我们也发现,在按键“Leave DFU mode”的左边有一个灰色按 键“Enter DFU mode/HID detach”,从字面就可以知道,它应该是进入到 DFU 模式的按键,在 APP 模式下此按键应该是激活 的,但是,在进入到 APP 模式后,此界面就检测不到 DFU 设备了,此软件将不再可用。那么我们又将如何来激活这个“Enter DFU mode/HID detach”按键呢? 5 Q0 ^* Y% [" E6 T6 l& i

; E; G" x. I2 P! [从帮助文档可知,在 APP 模式时,当 DfuSe Demo 这个软件识别到一个特定的 HID 设备时,“Enter DFU mod/HID detach”按键将激活,通过进一步了解,我们知道此时 DfuSe Demo 这个软件是需要使能此项功能才可以,所幸地是,我们已 经有了此软件,在与此文对应的附件中,可以找到一个名为 DfuSeDemo_A.exe 的可执行程序,将它拷贝到 DfuSeDemo 的 安装目录下,如下图所示:/ B* [/ v% G$ V7 h2 e0 N  k
1 t1 X; L: \+ G
4.png
9 _2 X# V9 }* O9 b' j& I
当运行在 APP 模式下时如下所示:) T7 O. r$ n( D1 q  z  S
5.png
- d" J+ U/ O! L: J* n6 M. u1 _
如上图所示,在 APP 模式下时,当程序检测到有效的 HID 设备时,DfuSe Demo 的”Available DFU Device”下拉框中会显示 这个 HID 设备,并且“Enter DFU mode/HID detach”按键激活。当按下此键时,MCU 会重启并进入到 DFU 模式。当然此 APP 是需要实现一个符合某种要求的 HID 设备才行。下面我们通过制作这样一个 APP 来讲解。 8 M$ V: j9 g. g  i
* x" l6 z  O  X5 [. r4 a$ s6 V5 n" D0 e
3 制作 APP
2 M9 |4 Z, c: ~7 \% L% s$ C
! V( r/ q: X- d' G
我们基于之前 DFU 培训时使用的 STM32F072-Discovery 板来实现此 APP。 打开 STM32CubeMx 软件新建一个基于 STM32F072RB 的工程,使能 USB 和 RTC 外设,RTC 我们主要用它的备份域寄存 器,用来保存跳进入到 DFU 模式的标志; Pinout 如下所示:
: h9 V( ]: Q$ E. G+ i" Q3 M
: E0 n$ F( o0 Y7 ]3 b3 g

5 v, D/ `3 G3 V# S) k; A+ T8 ]
1.png

8 a: U0 z' _" R1 D5 a8 T% o& D: K
.................
+ ]+ q" `& x3 Y* n2 z* |# j
想了解更多,请下载原文阅读

. q9 \' y* _& R; V, u5 s1 D
下载地址1>>              下载地址2>>               更多实战经验>>
$ _/ Y, @7 i: [. s2 b

9 K9 {4 w9 {. _+ H: w( R. s/ K+ l9 H

" W0 q" k8 e2 ]) r. N9 O- K
收藏 1 评论2 发布时间:2019-3-12 10:31

举报

2个回答
any012 回答时间:2019-5-6 14:12:47
给出的链接里,有两个有DFU_HID_V0.1.zip这个压缩文件,但下载后大小是0,解压后是空的。
zhongmeijun007 回答时间:2020-10-12 03:16:39
急需下载地址2里的内容啊,版主能给修复下链接么?谢谢

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版