使用 U 盘更新 STM32F4DISCOVERY 板固件5 G6 F% C0 j. n4 M4 ]8 O 前言 ) H W( E3 c+ E: ?4 R; s/ J" f( M 对于大多数基于 Flash 存储器的系统而言,能够更新最终产品中安装的固件,这一点非常重要。本文档介绍了基于 STM32F4DISCOVERY 板创建固件升级应用程序的通用规则。 ]' b$ z3 l4 u, |8 ^: K( T. u STM32F4 系列微控制器能够运行用户指定的应用程序,从而对存储在微控制器片上 Flash上的固件进行升级。借助这一特性,在重新编程过程中可以使用任意类型的通信协议(例如CAN、USART 和 USB)。本应用笔记以 USB 大容量存储主机为例进行说明。 & s5 U% H( u1 M' P* f" X8 _ 由于 USB 主机程序代码可单独执行,用户无需使用电脑主机执行固件升级,因此,利用 USB主机升级固件具有显著优势。用户只需使用一个 Flash 磁盘即可升级目标 STM32 器件。 文档内容 ● 第 1 节:固件升级概述概述了固件升级过程,并介绍了固件升级方法。 & E* g: E- }2 O" x ● 第 2 节:如何使用固件升级应用程序介绍了用户程序以及软件和硬件的系统要求。 4 ]: h9 g: {5 y+ v2 J+ T& C 参考文档 ; z0 Z$ O: [1 B7 _ ● STM32F4DISCOVERY STM32F4 高性能探索板 (UM1472) ● STM32F405xx、STM32F407xx、STM32F415xx 和 STM32F417xx 基于 ARM 内核的32 位高级 MCU 参考手册 (RM0090) 4 h* T9 g' r& e4 v! ~: ~ ● STM32F405xx STM32F407xx 数据手册 4 f8 v& [3 S- {. \9 v, t6 M ● STM32F415xx STM32F417xx 数据手册 $ X* T5 F8 H# a D9 k 如需上述文档,请访问 www.st.com/stm32f4-discovery。2 u8 d: h+ s" z4 E. S 1 固件升级概述 要将固件升级应用程序编程到 Flash 中,请使用 STM32F4xx 内嵌的自举程序或任意在线编程工具来轻松地对此应用程序进行烧录。 ( N) ^1 H) L+ Z9 i L 固件升级应用程序使用 USB 主机执行以下操作: - m- V' Y- W; z% j' q) q' s& w ● 从 Flash 磁盘(U 盘)将二进制文件 (.bin) 下载到 STM32F4xx 的内部 Flash 中。 ● 将 STM32F4xx 内部的所有 Flash 内容上传到二进制文件中。 ● 执行用户程序。 注: 此应用笔记基于 STM32 USB On-The-Go (OTG) 主机和器件库。有关 USB 主机栈和大容量存储器演示的详细信息,请参见用户手册 (UM1021)。 1.1 实现固件升级应用程序 固件升级应用程序包含表 1 中的源文件。: r+ ^# H3 T0 i3 T' k 探索板复位后,根据用户按钮状态: . `1 y+ i. Y, B3 Z/ _2 w1. 已按下用户按钮:执行固件升级应用程序。 2. 未按下用户按钮:对用户应用程序起始地址进行测试并执行以下其中一个过程: 0 V- ]7 s# r' |8 g- X5 g— 用户程序向量表有效:执行用户应用程序。 `; P$ \5 R) R; S7 s: A8 h" u( f! D— 用户程序向量表无效:执行固件升级应用程序。 执行固件升级应用程序期间,会持续检查用户按钮的状态,及按钮处于按下状态的持续时间。随后会根据用户按钮的状态时间执行以下其中一个过程。 + Z6 _0 ]( U9 s; Q注: 蓝色 LED 处于闪烁状态,表示正在验证 UPLOAD 命令条件。 图 1 介绍了固件升级应用程序流程图。 ) M. t6 I" F! \ 注: 若要执行 UPLOAD 命令,复位探索板启动固件时,按下用户按钮并保持 3 秒。 ' o% E/ k7 _* Z$ _4 ^6 } | |
STM32固件库分享,超全系列整理
最全USB HID开发资料,悉心整理一个月,亲自测试
【中文文档】AN3965_STM32F40x和STM32F41x基于串口的IAP
USB Audio设计与实现
【MCU实战经验】+STM32F107的USB使用
圈圈发布USB图书第二版有感,以及分享一些我学习USB过程...
STM32F4-DISC 实现USB主机(U盘)和USB设备(虚拟串口)自动切换
STM32 USB-HID通信移植步骤STM32 USB HID键盘例程
STM32F4中文用户手册
基于STM32F407的FreeRTOS阶段性的总结(13)