最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

STM32F4DISCOVERY板固件更新应用笔记说明书

IT圈 admin 24浏览 0评论

2024年5月25日发(作者:泉嗣)

AN3990

应用笔记

使用 U 盘更新 STM32F4DISCOVERY 板固件

前言

对于大多数基于 Flash 存储器的系统而言,能够更新最终产品中安装的固件,这一点非常重

要。本文档介绍了基于 STM32F4DISCOVERY 板创建固件升级应用程序的通用规则。

STM32F4 系列微控制器能够运行用户指定的应用程序,从而对存储在微控制器片上 Flash

上的固件进行升级。借助这一特性,在重新编程过程中可以使用任意类型的通信协议(例如

CAN、USART 和 USB)。本应用笔记以 USB 大容量存储主机为例进行说明。

由于 USB 主机程序代码可单独执行,用户无需使用电脑主机执行固件升级,因此,利用 USB

主机升级固件具有显著优势。用户只需使用一个 Flash 磁盘即可升级目标 STM32 器件。

文档内容

1

节:固件升级概述

概述了固件升级过程,并介绍了固件升级方法。

2

节:如何使用固件升级应用程序

介绍了用户程序以及软件和硬件的系统要求。

参考文档

STM32F4DISCOVERY STM32F4 高性能探索板 (UM1472)

STM32F405xx、STM32F407xx、STM32F415xx 和 STM32F417xx 基于 ARM 内核的

32 位高级 MCU 参考手册 (RM0090)

STM32F405xx STM32F407xx 数据手册

STM32F415xx STM32F417xx 数据手册

如需上述文档,请访问 /stm32f4-discovery。

2011 年 10 月文档 ID 022318 第 1 版1/13

固件升级概述AN3990

1 固件升级概述

要将固件升级应用程序编程到 Flash 中,请使用 STM32F4xx 内嵌的自举程序或任意在线编

程工具来轻松地对此应用程序进行烧录。

固件升级应用程序使用 USB 主机执行以下操作:

从 Flash 磁盘(U 盘)将二进制文件 (.bin) 下载到 STM32F4xx 的内部 Flash 中。

将 STM32F4xx 内部的所有 Flash 内容上传到二进制文件中。

执行用户程序。

注:此应用笔记基于

STM32 USB On-The-Go (OTG)

主机和器件库。有关

USB

主机栈和大容量

存储器演示的详细信息,请参见用户手册

(UM1021)

1.1

表 1.

实现固件升级应用程序

固件升级应用程序包含

1 中的源文件。

源文件

文件内容

main.c

stm32f4xx_it.c

command.c

flash_if.c

usb_bsp.c

usbh_usr.c

system_stm32f4xx.c

包含 USB 初始化数据。如果用户想要执行固件升级应用程序或者程序要执行用

户代码,则会执行 USB 主机状态机

包含应用程序的中断处理程序

包含固件升级命令(DOWNLOAD、UPLOAD 和 JUMP 命令)

提供对 STM32 嵌入式 Flash 驱动程序的介质层访问

实现 USB 主机库的板级支持包

包含 USB 主机库用户回调函数

包含 STM32 F4xx 器件的系统时钟配置

探索板复位后,根据用户按钮状态:

1.

2.

已按下用户按钮:执行固件升级应用程序。

未按下用户按钮:对用户应用程序起始地址进行测试并执行以下其中一个过程:

用户程序向量表有效:执行用户应用程序。

用户程序向量表无效:执行固件升级应用程序。

执行固件升级应用程序期间,会持续检查用户按钮的状态,及按钮处于按下状态的持续时间。

随后会根据用户按钮的状态时间执行以下其中一个过程。

表 2.

用户按钮状态时间控制

时间

> 3 秒

< 3 秒

执行的过程用户按钮状态

已按下

执行完 DOWNLOAD 命令之后将立即执行 UPLOAD 命令。

仅执行 DOWNLOAD 命令。

注:蓝色

LED

处于闪烁状态,表示正在验证

UPLOAD

命令条件。

2/13文档 ID 022318 第 1 版

2024年5月25日发(作者:泉嗣)

AN3990

应用笔记

使用 U 盘更新 STM32F4DISCOVERY 板固件

前言

对于大多数基于 Flash 存储器的系统而言,能够更新最终产品中安装的固件,这一点非常重

要。本文档介绍了基于 STM32F4DISCOVERY 板创建固件升级应用程序的通用规则。

STM32F4 系列微控制器能够运行用户指定的应用程序,从而对存储在微控制器片上 Flash

上的固件进行升级。借助这一特性,在重新编程过程中可以使用任意类型的通信协议(例如

CAN、USART 和 USB)。本应用笔记以 USB 大容量存储主机为例进行说明。

由于 USB 主机程序代码可单独执行,用户无需使用电脑主机执行固件升级,因此,利用 USB

主机升级固件具有显著优势。用户只需使用一个 Flash 磁盘即可升级目标 STM32 器件。

文档内容

1

节:固件升级概述

概述了固件升级过程,并介绍了固件升级方法。

2

节:如何使用固件升级应用程序

介绍了用户程序以及软件和硬件的系统要求。

参考文档

STM32F4DISCOVERY STM32F4 高性能探索板 (UM1472)

STM32F405xx、STM32F407xx、STM32F415xx 和 STM32F417xx 基于 ARM 内核的

32 位高级 MCU 参考手册 (RM0090)

STM32F405xx STM32F407xx 数据手册

STM32F415xx STM32F417xx 数据手册

如需上述文档,请访问 /stm32f4-discovery。

2011 年 10 月文档 ID 022318 第 1 版1/13

固件升级概述AN3990

1 固件升级概述

要将固件升级应用程序编程到 Flash 中,请使用 STM32F4xx 内嵌的自举程序或任意在线编

程工具来轻松地对此应用程序进行烧录。

固件升级应用程序使用 USB 主机执行以下操作:

从 Flash 磁盘(U 盘)将二进制文件 (.bin) 下载到 STM32F4xx 的内部 Flash 中。

将 STM32F4xx 内部的所有 Flash 内容上传到二进制文件中。

执行用户程序。

注:此应用笔记基于

STM32 USB On-The-Go (OTG)

主机和器件库。有关

USB

主机栈和大容量

存储器演示的详细信息,请参见用户手册

(UM1021)

1.1

表 1.

实现固件升级应用程序

固件升级应用程序包含

1 中的源文件。

源文件

文件内容

main.c

stm32f4xx_it.c

command.c

flash_if.c

usb_bsp.c

usbh_usr.c

system_stm32f4xx.c

包含 USB 初始化数据。如果用户想要执行固件升级应用程序或者程序要执行用

户代码,则会执行 USB 主机状态机

包含应用程序的中断处理程序

包含固件升级命令(DOWNLOAD、UPLOAD 和 JUMP 命令)

提供对 STM32 嵌入式 Flash 驱动程序的介质层访问

实现 USB 主机库的板级支持包

包含 USB 主机库用户回调函数

包含 STM32 F4xx 器件的系统时钟配置

探索板复位后,根据用户按钮状态:

1.

2.

已按下用户按钮:执行固件升级应用程序。

未按下用户按钮:对用户应用程序起始地址进行测试并执行以下其中一个过程:

用户程序向量表有效:执行用户应用程序。

用户程序向量表无效:执行固件升级应用程序。

执行固件升级应用程序期间,会持续检查用户按钮的状态,及按钮处于按下状态的持续时间。

随后会根据用户按钮的状态时间执行以下其中一个过程。

表 2.

用户按钮状态时间控制

时间

> 3 秒

< 3 秒

执行的过程用户按钮状态

已按下

执行完 DOWNLOAD 命令之后将立即执行 UPLOAD 命令。

仅执行 DOWNLOAD 命令。

注:蓝色

LED

处于闪烁状态,表示正在验证

UPLOAD

命令条件。

2/13文档 ID 022318 第 1 版

发布评论

评论列表 (0)

  1. 暂无评论