STMCU小助手
发布时间:2022-7-18 13:54
|
前言% \& W* d# Q" i6 ~7 M6 ^ 对于大多数基于 Flash 存储器的系统而言,能够更新最终产品中安装的固件,这一点非常重要。本文档介绍了基于 STM32F4DISCOVERY 板创建固件升级应用程序的通用规则。( ^ i# e( f+ X9 @$ D9 z3 w( s+ W STM32F4 系列微控制器能够运行用户指定的应用程序,从而对存储在微控制器片上 Flash上的固件进行升级。借助这一特性,在重新编程过程中可以使用任意类型的通信协议(例如CAN、USART 和 USB)。本应用笔记以 USB 大容量存储主机为例进行说明。 由于 USB 主机程序代码可单独执行,用户无需使用电脑主机执行固件升级,因此,利用 USB主机升级固件具有显著优势。用户只需使用一个 Flash 磁盘即可升级目标 STM32 器件。% u5 G& E' U. g# R( Z 文档内容& r! h' ^! g: m$ x ● 第 1 节:固件升级概述概述了固件升级过程,并介绍了固件升级方法。- t$ [: H' Y" Q% v& Z ● 第 2 节:如何使用固件升级应用程序介绍了用户程序以及软件和硬件的系统要求。- j( u/ l6 J" o1 y 参考文档 ● STM32F4DISCOVERY STM32F4 高性能探索板 (UM1472) ● STM32F405xx、STM32F407xx、STM32F415xx 和 STM32F417xx 基于 ARM 内核的32 位高级 MCU 参考手册 (RM0090) ● STM32F405xx STM32F407xx 数据手册6 p2 d$ W# s8 g7 Y; J8 S p) j ● STM32F415xx STM32F417xx 数据手册 1 f- X& _# y y! x+ A9 z9 Y 1 固件升级概述 要将固件升级应用程序编程到 Flash 中,请使用 STM32F4xx 内嵌的自举程序或任意在线编程工具来轻松地对此应用程序进行烧录。7 U# Q) \6 j! G, f- h6 |( V# k# s3 a 固件升级应用程序使用 USB 主机执行以下操作:8 f4 W- I8 i' ?6 i ● 从 Flash 磁盘(U 盘)将二进制文件 (.bin) 下载到 STM32F4xx 的内部 Flash 中。3 P2 f+ N& y$ e: m+ f0 Y- F ● 将 STM32F4xx 内部的所有 Flash 内容上传到二进制文件中。 ● 执行用户程序。5 G% M2 _+ s% w7 ^ 注: 此应用笔记基于 STM32 USB On-The-Go (OTG) 主机和器件库。有关 USB 主机栈和大容量存储器演示的详细信息,请参见用户手册 (UM1021)。 Z, P0 u# v7 ~2 o 1.1 实现固件升级应用程序 固件升级应用程序包含表 1 中的源文件。 ; t. N4 h$ s* l4 i
探索板复位后,根据用户按钮状态:% C' V; z! v2 Y# j0 @- x; ~- O8 m 1. 已按下用户按钮:执行固件升级应用程序。$ @& \7 Z2 Z7 j 2. 未按下用户按钮:对用户应用程序起始地址进行测试并执行以下其中一个过程:# q$ n. r. W+ h( k — 用户程序向量表有效:执行用户应用程序。7 v" u' U4 ?( q) P5 Q — 用户程序向量表无效:执行固件升级应用程序。 执行固件升级应用程序期间,会持续检查用户按钮的状态,及按钮处于按下状态的持续时间。4 z2 h: d3 ?0 `4 x' G" C8 l+ | 随后会根据用户按钮的状态时间执行以下其中一个过程。 + O0 s1 K4 j& p: Q9 B1 n
注: 蓝色 LED 处于闪烁状态,表示正在验证 UPLOAD 命令条件。: K i9 ^, }$ P# g8 { 图 1 介绍了固件升级应用程序流程图。 / v+ p6 N, L) R+ ~
8 P+ [& ?2 D+ B2 \& a & z, M/ F) o3 V 1.2 LED 状态 以下部分介绍了执行固件升级应用程序期间 LED 的状态: ● 红色 LED 一直闪烁 — 故障(U 盘断开连接、二进制文件不可用或者 FATFS 文件系统错误)。 ● 红色 LED 一直闪烁,蓝色 LED 点亮: H! r: y3 q; m — 故障(Flash 可用空间不足,无法加载二进制文件)。* O' z* @* o0 I8 [2 ` ● 红色 LED 一直闪烁,蓝色 LED 点亮,橙色 LED 点亮 — Flash 擦除错误。/ y8 o. f% t8 ]9 P9 K6 b! k ● 蓝色 LED 点亮 — 正在进行下载。! ]3 H" u# G& n; { ● 蓝色 LED 点亮,橙色 LED 点亮. R3 K$ n0 l- o — 下载已完成;正在上传。' q* l- W/ r3 ]7 b ● 蓝色 LED 闪烁 t' U& p7 Z O6 G9 V+ U7 Q — 上传条件已经过验证,此时应松开用户按钮。 ● 橙色 LED 点亮* g0 _& o4 S7 j- j4 Z! r8 b L# h& W — 下载已完成。 ● 橙色 LED 点亮,蓝色 LED 点亮,红色 LED 一直闪烁5 a' n4 `0 |9 g, Z# |! p — U 盘被读保护。( Z1 L) [0 ?* R9 J' b3 i' m ● 绿色 LED 点亮,橙色 LED 熄灭9 e& v, |% W! {' l/ s) | — 成功完成下载;MCU 处于等待状态,直到按下用户按钮执行 JUMP 命令。: b: S) L; F: j* ^/ A" { ● 绿色 LED 点亮,橙色 LED 点亮 — 成功完成下载和上传;MCU 处于等待状态,直到按下用户按钮执行 JUMP 命令。 ( E$ u0 P! U: z2 A1 m, l+ X 1.3 命令说明, o) q+ K( _4 ? 表 3 中列出了固件升级应用程序命令。* ~$ u- J p- g
' _% c0 a4 Z9 t$ [4 b! c2 U9 J 完整版请查看:附件9 \* M" j7 e! \( @/ F/ ? 6 h, W2 h: _2 G $ w2 @5 G% \- Z6 ^1 k& C |
DM00039672_ZHV1.pdf
下载462.53 KB, 下载次数: 21
【福利三:雨露均沾·逢7狂欢】之四:用一个定时器同步另外两个定时器输出PWM
【逢7发帖赢大礼】STM32开发之WIFI实时时钟
【逢7发帖赢大礼】STM32开发之指纹识别!
【逢7发帖赢大礼】STM32开发之环境空气质量监测
【逢7发帖赢大礼】STM32开发之人体实时运动信息监测!
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
【逢7发帖赢大礼】全网最简单的Arduino_STM32开发环境搭建教程!
STM32F4中文用户手册
STM32F400、STM32F402 Cortex-M4超值单片机
SPI 高温读错最后一位?STM32F42xx 官方根治方案
微信公众号
手机版
请问这份文档中使用的代码是开放的吗?在哪里可以下载?