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

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

[复制链接]
STMCU-管管 发布时间:2019-3-29 11:10
1 前言
; _3 \- C8 k4 ]' e: g% P6 b

+ I, Z" U4 k, @对于大多数基于 Flash 的系统而言,在最终产品中安装之后,能够对固件进行更新,这一点非常重要。这一功能被称为在应用中编程 (IAP)。此应用笔记的目的就是为创建 IAP 应用程序提供通用准则。
3 A+ h+ G$ j6 |/ U% {& `9 \& b7 P
STM32F4xx 微控制器能够运行用户指定的固件,从而执行微处理器内置 Flash 的 IAP。借助这一特性,在重新编程过程中可以使用任意类型的通信协议。本应用笔记以 USART 为例进行说明。
! q$ [+ b" k+ J/ E! i6 Z
0 k" Q/ M( I' H. e7 d# i' M+ f2 IAP 概述
# }  E7 Q) E( z2 v- H! b% x2 a( ]& S$ `% s7 @4 m: H
STM32F4xx 器件可在意法半导体的 STM324xG-EVAL 评估板上实现。
* q8 h4 o  V( c7 z0 b& m/ V6 n' K" C) z0 m
2.1 原理
0 [, s" v- O, B# ~# k# n

, o* E  x, ?# v0 T4 H9 f- \6 g应使用所选的开发工具通过 JTAG/SWD 接口,或使用系统存储区中工厂内置的自举程序将IAP 驱动程序编程到 Flash 的基址。 5 b% K2 o$ y7 O6 N9 C

9 N. ^3 ^( J, \$ W) }IAP 驱动程序使用 USART 执行以下操作:
% K. u! @& p6 e1 K5 a; B● 从超级终端将二进制文件下载到 STM32F4xx 内部 Flash 中。 ! y6 n  q- ~) s9 `- `( ~, f# M) s+ r9 ]
● 将 STM32F4xx 的内部 Flash 内容(从指定的用户应用程序地址开始)上传到二进制文件中。
# \+ _* B, Z; b! G# O; ?( T● 执行用户程序。
7 e* F0 d7 Z" j2 P( v

  w- y0 D2 l8 r) U$ J2.2 IAP 驱动程序说明IAP . X$ `( r% v* \1 W' k( K$ i
) Q$ B5 y5 g- u. h1 I
驱动程序包含下列源文件: ) `1 x; H6 q1 F! q# I
● main.c:在此文件中对 USART 进行初始化并配置 RCC。然后通过 menu.c 文件执行主菜单。
, W2 D8 t- H2 f) d/ ?1 H( p4 R● menu.c:包含主菜单例程。主菜单提供了多种操作选项,包括下载新的二进制文件,上传内部 Flash,执行已加载的二进制文件,去除将要被加载二进制文件页的写保护(如果这些页面被写保护)。 $ E, J3 x) l; j. u! P, e% l
● flash_if.c:包含内部 Flash 的写入、擦除和禁止写保护功能。 $ T+ b; u* W, C7 i
● common.c:包含从/向 USART 外设读取/写入相关功能
1 a* X( _# l0 ~5 m● ymodem.c:使用 YMODEM 协议从/向超级终端应用程序接收/发送数据(a)。如果接收数据时出现故障,则显示错误消息“接收文件失败”。如果成功接收数据,则将该数据编程到内部 Flash 的相应地址中。然后对内部 RAM 内容与内部 Flash 内容进行比较,以验证数据是否完整。如果数据存在不一致的情况,则显示错误消息“验证失败”。如果映像文件大小超过允许的存储空间,或用户中止任务时,还会显示其它错误消息。   [1 R% N+ ~' H, \8 I2 b
● STM32F4xx 标准外设库。
6 Y4 e3 E( k7 Z0 y  h5 y- a6 J" z& p  F* s
用户可以按下连接到引脚的按钮来选择是执行用户应用程序,还是执行 IAP 重新编程: / f3 x& m  H6 l
● 复位时不按按钮:切换到用户应用程序。 8 |% a. U$ u  M3 s: N9 y3 @6 Z
● 复位时按下按钮:显示 IAP 主菜单。 - c# J# T' t& q9 `

' [+ ~/ |6 z* B% s' [  S有关 STM324xG-EVAL 板上用于进入 IAP 模式的按钮的详细信息,请参见表 1:STM32F4xxIAP 的实现。
) F! s7 O3 [8 Y2 d' P
# j& V' g( F- d, UIAP 流程图如图 1 所示。
+ b8 V3 Z! g" `- k
3 s% m4 a/ [# U/ \* M3 运行 IAP 驱动程序 ! v! X5 U" ~$ ^5 R
" \; E) J* K) W+ b4 T. E
3.1 超级终端配置
: u! K' Z; t  N( x) S
+ `- z+ u* u$ u: ^, q要使用 IAP,用户的 PC 必须能够运行超级终端或其它支持 ymodem 协议的终端程序。本文档中使用超级终端。图 2 给出了超级终端的配置。) O, S3 }9 f3 m  H# H4 I8 j
1.png

  @" U1 e6 b8 G; ?
* Y) ?9 j5 \# {# h
注: 使用波特率值 115200 bps 进行举例说明。选择系统时钟频率时,必须要小心。为了能顺利通过 USART 进行通信,最终应用中的系统时钟频率必须保证能够产生 115200 bps 的波特率。3.2 执行 IAP 驱动程序例如,在本应用笔记中,按下连接到引脚的按钮可以启动 IAP 驱动程序。在复位时按下按钮,用户可运行 IAP 驱动程序以重写编程 STM32F4xx 的内部 Flash。当然,不一定要使用按钮,用户还可以对该引脚施加相当于有效电平的信号。请参见表 1:STM32F4xx IAP 的实现。
4 I, i; n/ u9 Z( d% F. d& w& i
.............
( a0 J. A. m3 F9 I" i" i# f8 b# z
想了解更多,请下载原文阅读

) d& _+ @0 O) E9 Y" N/ r, C) `# d5 O6 B9 `( C& y8 E. s$ U
收藏 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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版