STM32F405 DFU更新固件

参考https://wiki.bitcraze.io/projects:crazyflie2:development:dfu

DFU更新模式主要被考虑作为一种恢复模式,它可以下载新的固件到STM32F405中;另外空中下载OTA(Over The Air)也可以更新固件,相对DFU更方便一些,用这种方法我们也可以更新nRF51822。

Linux (Ubuntu)

使用apt-get安装dfu-util

apt-get install dfu-util

然后我们就可以使用DFU更新模式引导STM32F405


1.
连接一个micro-USB线到你的电脑,但是先不要连接到Crazyflie 2.0; 2. 断开Crazyflie 2.0供电电池(如果电池已经连接上); 3. 按下button(on/off),保持按下状态,然后插入USB线到Crazyflie 2.0; 4. 按下状态保持五秒,当你看到第二个等闪烁(频率1HZ)的时候,就可以松开按键了; 5. 这个时候STM32F405就处于DFU模式了。

为了确保DFU模式是正常的,我们可以通过lsusb看到如下信息:

lsusb
...
Bus XXX Device XXX: ID 0483:df11 STMicroelectronics STM Device in DFU Mode
...

BIN File

现在STM32F405可以更新,目前我们仅仅生成了二进制文件.bin,而没有.dfu文件,所以使用dfu-util的时候需要提供更多的信息才能,例如下载的地址信息,因为bin文件没有包含地址信息,需要我们自己指定。如果Crazyflie 2.0 firmware使用带CLOAD=1(默认带有)的参数编译的二进制文件,那么可以下载到bootloader之后的地址0x08004000(16K),booloader的起始地址是0x08000000。

sudo dfu-util -d 0483:df11 -a 0 -s 0x08004000 -D cflie.bin

如果编译的时候参数CLOAD=0,那么编译的二进制文件下载的地址为0x08000000。

注意:这将会覆盖radio-bootloader的程序,然后你可以用DFU同样的方法下载bootloader的程序。

sudo dfu-util -d 0483:df11 -a 0 -s 0x08000000 -D cflie.bin

DFU File

下载DFU文件

sudo dfu-util -d 0483:df11 -a 0 -D file.dfu

需要一些时间等待下载完成,可能打印的信息如下:

[email protected]:~/projects/crazyflie-firmware$ sudo dfu-util -a 0 -s 0x08004000 -D cflie.bin
dfu-util 0.5

(C) 2005-2008 by Weston Schmidt, Harald Welte and OpenMoko Inc.
(C) 2010-2011 Tormod Volden (DfuSe support)
This program is Free Software and has ABSOLUTELY NO WARRANTY

dfu-util does currently only support DFU version 1.0

Opening DFU USB device... ID 0483:df11
Run-time device DFU version 011a
Found DFU: [0483:df11] devnum=0, cfg=1, intf=0, alt=0, name="@Internal Flash  /0x08000000/04*016Kg,01*064Kg,07*128Kg"
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuERROR, status = 10
dfuERROR, clearing status
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 2048
No valid DFU suffix signature
Warning: File has no DFU suffix
DfuSe interface name: "Internal Flash  "



现在你可以拔掉micro-USB,连接电池,尝试你新的程序。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-06 18:31:14

STM32F405 DFU更新固件的相关文章

【转载】OpenWrt sysupgrade 命令行更新固件到最新版

OpenWrt sysupgrade 命令行更新固件到最新版 下面我们要使用 sysupgrade 更新固件到trunk最新版. 要注意的是,trunk包含试验的功能,可能不稳定,刷机风险自己承担. 在浏览器里登陆 192.168.1.1 进行固件升级是比较简单的.今天我们要尝试的的是命令行刷机升级.命令行的方式更强大. SSH登录路由器 在Ubuntu里,按Ctrl+Alt+T打开命令行终端,输入: ssh [email protected] 输入密码,登录成功. 进入OpenWrt /tmp

NETGEAR R7000 更新固件失败 使用TTL-USB修复教程

声明:该文章为本人原创,首次发帖网站为超能网(ID:iceman),因超能网论坛关闭,故而转载至博客园,还请知悉. 事情是这样的,本人前几年写过一个R6300 V2救砖的教程,当时写的比较唐突,很多技术点说的不是很详细,陆陆续续有很多朋友发邮件和站内信询问救砖事宜,并要求我对原文(http://www.expreview.com/33689-2.html)进行修改,这里很感谢大家的鞭策和指点,现在我在这里就R7000救砖写一篇详细的教程,为此,笔者特意把一台R7000刷死已创造救砖环境,其中的步

Azure IOT 设备固件更新技巧,看这一篇就够了

嫌长不看版 今天为大家准备的硬菜是:在 Azure IoT 中心创建 Node.js 控制台应用,进行端到端模拟固件更新,为基于 Intel Edison 的设备安装新版固件的流程.通过创建模拟设备应用,可实现 firmwareUpdate 直接方法,启动等待下载固件映像.下载固件映像,最终应用新版固件映像,并在每个阶段显示操作进度. 操作细节版 在进行物联网开发的过程中,很多用户会遇到这样的问题:物联网中的某些边缘设备上运行的固件存在问题需要修复,准备好新版固件后,如何集中批量部署给所有适合的

更新开发板固件

更新开发板固件   IDE包含了发布的板子专有固件. 遵从如下步骤用IDE去更新你的板子 (1) 断开所有电源 (USB 和5 V 电源端).确保没有任何sketch在板子运行 (2) 把SD卡从板子上取出 (3) 用5V给板子供电 (4) USB数据线连接USB Client端口,注意 COM 端口已经连接 (5) 打开 IDE 并且选择 Tools >Board >Intel® Galileo (6) 选择COM端口>Serial Port.(备注:在更新固件前不要下载任何 sket

OpenRT固件更新流程

1 使用范围 ????? 本文档适用于分析OpenRT核心网路由器相关问题的技术人员. ? 2 固件更新需求 ????? OpenRT系统包含系统镜像.配置文件.Web页面.内核模块.业务APP等多个组件.系统更新操作可能涉及多个部分,需要对多个组件进行更新.这对OpenRT的维护人员提出了很高的要求,增加了维护成本.因此需要设计一套方便简洁的系统固件升级流程,简化OpenRT的维护流程,减低使用门槛,提高OpenRT核心网路由系统的竞争力. ? 3 固件更新方案 3.1 基本思路 ?????

固件远程更新之STARTUPE2原语(fpga控制flash)

作者:九章子 来源:CSDN 原文:https://blog.csdn.net/jiuzhangzi/article/details/79471365 有的项目需要远程更新固件,更新完成后断电.重启即可.那远程更新是如何实现的呢?用的最多的应该是以太网或者自定义的局域网为主,当然还可以使用pcie.串口之类的,像xilinx还有golden image,以防止远程更新失败启动不起来,它主要是flash存有两个启动文件,正常情况下启动默认的,当默认的被损坏,就从备用的启动.本文章主要讲解的是STA

关于ISP、IAP、DFU和bootloader

这是嵌入式开发中常用的几个专业术语,其诞生的背景和其具体作用大概如下 在很久很久以前,那是8051单片机流行的时代,做单片机开发都需要一个专用工具,就是单片机的编程器,或者叫烧写器.说"烧"写一点不为过,当年的经典芯片AT89C51在编程时需要十几伏的高电压,加在一个特定的引脚上,才能进入编程.对于某款芯片的编程,都有一个特定的时序,这个时序通常在芯片的datasheet里进行描述并以硬件实现.另外在编程器里的也有一个MCU,这其中使用软件产生这个时序,从而对目标芯片进行编程.电脑通过

nRF52832 开发记录(二) - DFU 功能

前言 NRF 官方提供了 DFU (Device Firmware Upgrade) 设备固件升级的例程,在项目中使用需要自己生成密钥用于加解密固件.本工程基于 nRF5_SDK_16.0.0 相关软件下载和安装 nRF Command Line Tools 10.5.0 (上篇博文已安装) 下载链接 Python 2.7.17 下载链接 coreutils 5.3.0 下载链接 gcc-arm-none-eabi-7-2018-q2-update-win32-sha2 下载链接 make 3.

HP DL380 G6更新esxi6.0 SATA 硬盘掉线问题

最近弄了台旧服务器HP DL380 G6安装esxi6.0之后,发现本地硬盘时不时会经常掉线,然后必须要重启服务器,找了相关的资料发现是由于板载的P410i固件版本过旧引起的,然后准备更新固件发现了几篇文章关于用HPSUM来更新ESXi主机中的固件,想用此方法尝试下,因为这种方法很适用于批量服务器来更新固件 HPSUM 6.01远程刷新ESXi服务器固件 http://www.hpiss.com/7908.html 给个目录,具体文章就不转了 1实验环境: 2前期准备 3设置ESXi 3.1开启