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

【中文文档】AN3965_STM32F40x和STM32F41x基于串口的IAP

[复制链接]
STMCU-管管 发布时间:2019-3-29 11:10
1 前言
. D  t0 k7 i$ k* {, n: `
) R5 X) T( k4 k. {* v) J
对于大多数基于 Flash 的系统而言,在最终产品中安装之后,能够对固件进行更新,这一点非常重要。这一功能被称为在应用中编程 (IAP)。此应用笔记的目的就是为创建 IAP 应用程序提供通用准则。
+ F$ M6 {: b" _! J2 f0 w: F7 ?' C" f& h; [
STM32F4xx 微控制器能够运行用户指定的固件,从而执行微处理器内置 Flash 的 IAP。借助这一特性,在重新编程过程中可以使用任意类型的通信协议。本应用笔记以 USART 为例进行说明。6 t0 n9 Y; y2 A9 [

. |( T" s0 V# M2 o4 k$ Q9 m2 b& f2 IAP 概述
: z4 I/ L" F9 Z6 L8 @8 I- ?! E0 _0 a4 k/ v( d
STM32F4xx 器件可在意法半导体的 STM324xG-EVAL 评估板上实现。 . \+ l& @. x$ F3 R' j* F

/ d. J% O0 E$ t: n2.1 原理 7 k. }8 \* A3 p/ K+ z. n  p

7 ]8 H0 B7 ^' K$ ]* m7 q4 s应使用所选的开发工具通过 JTAG/SWD 接口,或使用系统存储区中工厂内置的自举程序将IAP 驱动程序编程到 Flash 的基址。 % U0 D. w" B1 w, P0 T: `
9 N+ _2 |( Q5 ?! o) R0 A8 m- D
IAP 驱动程序使用 USART 执行以下操作:
5 d% F/ Y; _7 W6 Y3 I/ O/ G- [# u/ v● 从超级终端将二进制文件下载到 STM32F4xx 内部 Flash 中。
- e6 c# U: M& `: S2 N0 l0 d● 将 STM32F4xx 的内部 Flash 内容(从指定的用户应用程序地址开始)上传到二进制文件中。
4 o  y$ T3 a( B4 N- v* {● 执行用户程序。 4 g" X# d4 y" }
2 f1 _& j' g1 M! i
2.2 IAP 驱动程序说明IAP 4 V6 }- @! h) x8 e5 C  ^) z4 S* c

# O& E( A$ F( M9 ~6 L: s7 \驱动程序包含下列源文件:
: H7 v& o+ n) j● main.c:在此文件中对 USART 进行初始化并配置 RCC。然后通过 menu.c 文件执行主菜单。
. `/ ]3 _( [* l( ~  V● menu.c:包含主菜单例程。主菜单提供了多种操作选项,包括下载新的二进制文件,上传内部 Flash,执行已加载的二进制文件,去除将要被加载二进制文件页的写保护(如果这些页面被写保护)。 7 l* V# W3 O" N( L5 o( l3 m& I
● flash_if.c:包含内部 Flash 的写入、擦除和禁止写保护功能。
: L* h8 m8 J# t: x( s7 ?● common.c:包含从/向 USART 外设读取/写入相关功能
7 c' ?* o, X" f& Z' F5 f9 V● ymodem.c:使用 YMODEM 协议从/向超级终端应用程序接收/发送数据(a)。如果接收数据时出现故障,则显示错误消息“接收文件失败”。如果成功接收数据,则将该数据编程到内部 Flash 的相应地址中。然后对内部 RAM 内容与内部 Flash 内容进行比较,以验证数据是否完整。如果数据存在不一致的情况,则显示错误消息“验证失败”。如果映像文件大小超过允许的存储空间,或用户中止任务时,还会显示其它错误消息。 ! b4 S; \6 t! |: N
● STM32F4xx 标准外设库。 - a9 _6 c6 H9 P& @$ j
8 L1 K% j4 g( j* Q2 F
用户可以按下连接到引脚的按钮来选择是执行用户应用程序,还是执行 IAP 重新编程:
6 h1 W' f3 J5 ^5 c/ r2 z! l● 复位时不按按钮:切换到用户应用程序。
, I  T# t0 e1 x. d* c1 |' w● 复位时按下按钮:显示 IAP 主菜单。
3 v) I2 m5 l+ P' i- V, D3 i5 \
/ |9 s4 {! N- \
有关 STM324xG-EVAL 板上用于进入 IAP 模式的按钮的详细信息,请参见表 1:STM32F4xxIAP 的实现。 6 @7 F, h, S& u4 O
6 m8 x. h6 \( n: R- h
IAP 流程图如图 1 所示。" }: I! P( d( o
: t$ t- G/ b8 ^0 H
3 运行 IAP 驱动程序
9 f4 W$ T" w) n2 }4 {- V8 s4 N) x7 C$ e. P, [5 p5 f6 ]& E0 }4 W! o* K
3.1 超级终端配置 " {  ]/ [& \1 e# d6 j
8 q/ {6 y" o+ I! Z- p1 j
要使用 IAP,用户的 PC 必须能够运行超级终端或其它支持 ymodem 协议的终端程序。本文档中使用超级终端。图 2 给出了超级终端的配置。
& D% [! G3 _" ?( Z1 @
1.png

3 H4 i- c4 H/ G$ Y: m3 o* u/ c; \2 p  u/ B$ C" q- a: J6 x
注: 使用波特率值 115200 bps 进行举例说明。选择系统时钟频率时,必须要小心。为了能顺利通过 USART 进行通信,最终应用中的系统时钟频率必须保证能够产生 115200 bps 的波特率。3.2 执行 IAP 驱动程序例如,在本应用笔记中,按下连接到引脚的按钮可以启动 IAP 驱动程序。在复位时按下按钮,用户可运行 IAP 驱动程序以重写编程 STM32F4xx 的内部 Flash。当然,不一定要使用按钮,用户还可以对该引脚施加相当于有效电平的信号。请参见表 1:STM32F4xx IAP 的实现。

4 B& n( C: v, F, p% ]. L
.............
3 i! Q/ H# l; g: z8 D4 [2 U
想了解更多,请下载原文阅读

/ _5 d* ?% G% [
. V3 A: R  I, C5 l8 `# p
收藏 1 评论3 发布时间:2019-3-29 11:10

举报

3个回答
Kevin_G 回答时间:2019-3-29 12:47:05
收藏
KEY1 回答时间:2019-4-3 14:21:45
不错
185777897 回答时间:2024-3-25 00:43:00

这个我怎么没有找到官方例程!!!

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