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

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

[复制链接]
STMCU-管管 发布时间:2019-3-29 11:10
1 前言 7 y+ {& V- a! ?% B0 ]/ [/ C
( J$ ?/ |4 F/ A0 r6 A4 O' Q
对于大多数基于 Flash 的系统而言,在最终产品中安装之后,能够对固件进行更新,这一点非常重要。这一功能被称为在应用中编程 (IAP)。此应用笔记的目的就是为创建 IAP 应用程序提供通用准则。 ' w% M: F% _- R7 q# ]" C
9 x9 |7 V0 }' p; ^; [  X6 }
STM32F4xx 微控制器能够运行用户指定的固件,从而执行微处理器内置 Flash 的 IAP。借助这一特性,在重新编程过程中可以使用任意类型的通信协议。本应用笔记以 USART 为例进行说明。1 S, ~- h; r% Y
+ w  j/ n6 y. Z
2 IAP 概述
; s& ~/ l" w2 O5 s: z% Q' {. \2 X( v# L# Z+ p
STM32F4xx 器件可在意法半导体的 STM324xG-EVAL 评估板上实现。
+ a; L" B2 l, z1 x# s$ D8 C" w; Y5 Q& X/ S' ^
2.1 原理
3 Z2 ^1 [. P' G/ Q
- ?/ ]$ `. ~# h8 S3 d6 M
应使用所选的开发工具通过 JTAG/SWD 接口,或使用系统存储区中工厂内置的自举程序将IAP 驱动程序编程到 Flash 的基址。 ) M" E& D  u  Q8 r7 ~) e- H5 L
4 t! ]$ H, V4 ]; B4 w
IAP 驱动程序使用 USART 执行以下操作: 9 c6 j$ O4 O: I; z- }2 n, e& v
● 从超级终端将二进制文件下载到 STM32F4xx 内部 Flash 中。 6 e9 T6 |! s  y  ?) L
● 将 STM32F4xx 的内部 Flash 内容(从指定的用户应用程序地址开始)上传到二进制文件中。 * K- u( T; {/ ]: [
● 执行用户程序。
! T5 x( r$ f- S" ^2 o- `

$ T" Y% |# I. |  c5 U. t2.2 IAP 驱动程序说明IAP
) h, Q6 P5 r; Y3 ]1 z! f3 G

4 i6 \9 a5 A  R) y5 s驱动程序包含下列源文件:
+ A5 G1 D3 G  h+ a● main.c:在此文件中对 USART 进行初始化并配置 RCC。然后通过 menu.c 文件执行主菜单。
' m' y" u( l; ~" \8 W● menu.c:包含主菜单例程。主菜单提供了多种操作选项,包括下载新的二进制文件,上传内部 Flash,执行已加载的二进制文件,去除将要被加载二进制文件页的写保护(如果这些页面被写保护)。
: B/ S! u/ R' t: w) f9 c" K● flash_if.c:包含内部 Flash 的写入、擦除和禁止写保护功能。 ' U- p9 q3 ?1 }' F7 H0 U
● common.c:包含从/向 USART 外设读取/写入相关功能
2 P* i4 d% g3 G2 v+ U# @; `● ymodem.c:使用 YMODEM 协议从/向超级终端应用程序接收/发送数据(a)。如果接收数据时出现故障,则显示错误消息“接收文件失败”。如果成功接收数据,则将该数据编程到内部 Flash 的相应地址中。然后对内部 RAM 内容与内部 Flash 内容进行比较,以验证数据是否完整。如果数据存在不一致的情况,则显示错误消息“验证失败”。如果映像文件大小超过允许的存储空间,或用户中止任务时,还会显示其它错误消息。
) @5 H8 b7 K; K7 H$ Z; Q● STM32F4xx 标准外设库。 9 n; ]2 \6 w7 I/ \4 E  B5 C  b

. H& a) i7 G* |% t( D1 q) \' [用户可以按下连接到引脚的按钮来选择是执行用户应用程序,还是执行 IAP 重新编程: + j8 p6 z( D( O  o0 I& M1 a
● 复位时不按按钮:切换到用户应用程序。 - R. V8 O2 _* {' \; F
● 复位时按下按钮:显示 IAP 主菜单。
2 P8 O  [# ?% }* N
) D3 W7 b) N5 Q3 K
有关 STM324xG-EVAL 板上用于进入 IAP 模式的按钮的详细信息,请参见表 1:STM32F4xxIAP 的实现。
- {' F+ `; \1 W3 |' |6 D; R
3 x8 V( p% I6 F* M/ TIAP 流程图如图 1 所示。" D5 y' R$ `: G" S& ^9 w) p. b
7 ~1 S+ S" Z1 _: d. W' x
3 运行 IAP 驱动程序 ' Z  `# z4 ]8 R
  {/ J% e2 E% U( [8 H' @
3.1 超级终端配置 0 x' I$ I$ e. V4 O" F0 H$ R8 h1 |3 ?
7 I: {: Z5 `& I  m6 F. S
要使用 IAP,用户的 PC 必须能够运行超级终端或其它支持 ymodem 协议的终端程序。本文档中使用超级终端。图 2 给出了超级终端的配置。
( ?$ d1 J8 ]6 G; Z7 a, J
1.png
6 K  ?/ d! K' Z8 S( }* L

- q5 V/ w8 t( Q) a1 h9 g8 z
注: 使用波特率值 115200 bps 进行举例说明。选择系统时钟频率时,必须要小心。为了能顺利通过 USART 进行通信,最终应用中的系统时钟频率必须保证能够产生 115200 bps 的波特率。3.2 执行 IAP 驱动程序例如,在本应用笔记中,按下连接到引脚的按钮可以启动 IAP 驱动程序。在复位时按下按钮,用户可运行 IAP 驱动程序以重写编程 STM32F4xx 的内部 Flash。当然,不一定要使用按钮,用户还可以对该引脚施加相当于有效电平的信号。请参见表 1:STM32F4xx IAP 的实现。

" m) ~4 b  o3 Q9 d$ P& t
.............
" q9 n  t$ P3 z5 o1 D
想了解更多,请下载原文阅读
' d8 h2 E/ W9 M. J; D4 J
/ S! m7 }  F. J( Q5 ~9 v7 H
收藏 1 评论3 发布时间:2019-3-29 11:10

举报

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

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

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版