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

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

[复制链接]
STMCU-管管 发布时间:2019-3-29 11:10
1 前言
4 K1 ^! S9 M8 B7 F/ ^

# t% z) E8 _% g3 e# V对于大多数基于 Flash 的系统而言,在最终产品中安装之后,能够对固件进行更新,这一点非常重要。这一功能被称为在应用中编程 (IAP)。此应用笔记的目的就是为创建 IAP 应用程序提供通用准则。   @* H' n& a- T  k2 R

+ g; b% x6 X4 M: }STM32F4xx 微控制器能够运行用户指定的固件,从而执行微处理器内置 Flash 的 IAP。借助这一特性,在重新编程过程中可以使用任意类型的通信协议。本应用笔记以 USART 为例进行说明。- [8 R/ V' Z* l
8 }) Y0 k. W! J" \6 ~% j" S3 n
2 IAP 概述 9 r2 L1 d! y$ I- _3 _
& q; J7 q) n0 L/ ]
STM32F4xx 器件可在意法半导体的 STM324xG-EVAL 评估板上实现。 % K4 y" S+ T7 Z3 \1 b  S
3 \0 r3 R, u2 }& W
2.1 原理 : w% Z$ H. t- x3 }& F

2 `6 o+ g' B6 @( t" W5 |2 e9 I应使用所选的开发工具通过 JTAG/SWD 接口,或使用系统存储区中工厂内置的自举程序将IAP 驱动程序编程到 Flash 的基址。 / D8 q% c, s  g5 ^

' c0 U) v; y4 SIAP 驱动程序使用 USART 执行以下操作: * p9 m9 z0 e# O- h* x6 B
● 从超级终端将二进制文件下载到 STM32F4xx 内部 Flash 中。
/ E% R8 C- s% n" q; G- g/ T● 将 STM32F4xx 的内部 Flash 内容(从指定的用户应用程序地址开始)上传到二进制文件中。
3 a* K% {% V  Q& ?$ {4 C● 执行用户程序。 6 c, Z! m: a9 |8 z! @2 V% S

1 |  ^! L' K# x* g/ T2.2 IAP 驱动程序说明IAP 1 o* a1 b1 J* n( _+ b6 x, z0 g

0 K0 L# l( W+ U- {9 ~& {驱动程序包含下列源文件: + V7 j% P' x+ \
● main.c:在此文件中对 USART 进行初始化并配置 RCC。然后通过 menu.c 文件执行主菜单。 ' |9 ?( I- y4 j& a: O: `0 A
● menu.c:包含主菜单例程。主菜单提供了多种操作选项,包括下载新的二进制文件,上传内部 Flash,执行已加载的二进制文件,去除将要被加载二进制文件页的写保护(如果这些页面被写保护)。 6 d) `4 U8 B6 z9 Y
● flash_if.c:包含内部 Flash 的写入、擦除和禁止写保护功能。
8 Q9 H( y2 C% ]/ `● common.c:包含从/向 USART 外设读取/写入相关功能 ) J! _* q# p( _; t& \9 b
● ymodem.c:使用 YMODEM 协议从/向超级终端应用程序接收/发送数据(a)。如果接收数据时出现故障,则显示错误消息“接收文件失败”。如果成功接收数据,则将该数据编程到内部 Flash 的相应地址中。然后对内部 RAM 内容与内部 Flash 内容进行比较,以验证数据是否完整。如果数据存在不一致的情况,则显示错误消息“验证失败”。如果映像文件大小超过允许的存储空间,或用户中止任务时,还会显示其它错误消息。 8 I7 z# d% Z& \! S7 @  `
● STM32F4xx 标准外设库。
  _* i/ v( D7 V9 {. H* A' x+ ~
! A' ?3 e' h% f用户可以按下连接到引脚的按钮来选择是执行用户应用程序,还是执行 IAP 重新编程:
$ G7 w2 j  m/ `; G: c● 复位时不按按钮:切换到用户应用程序。 + J. }( w. q6 j2 @# y  x
● 复位时按下按钮:显示 IAP 主菜单。 7 B4 t- ~. M2 V  r9 V4 n
( }# E4 w5 `  s, x  n
有关 STM324xG-EVAL 板上用于进入 IAP 模式的按钮的详细信息,请参见表 1:STM32F4xxIAP 的实现。 " w( i  G; ^) I/ {; Y* p! i8 V$ _8 U9 v

! ^2 J0 C7 p, y, F) cIAP 流程图如图 1 所示。+ k6 e* P: ^+ T/ a5 H2 J  X9 ?

( s6 M  y" O; H! ^* \, m5 W3 运行 IAP 驱动程序 4 M; F4 b; n* l* g1 @
9 O) c, J) @" Y0 p/ P! v- h
3.1 超级终端配置
' `% T3 i/ Z  V/ `9 H5 }3 q0 I
0 D, J6 `1 ^  y; {; o) }" d5 d要使用 IAP,用户的 PC 必须能够运行超级终端或其它支持 ymodem 协议的终端程序。本文档中使用超级终端。图 2 给出了超级终端的配置。0 B% X5 F' x5 L) D
1.png
# e  w0 B" E; M" Z& ]
& P4 P2 }7 o7 X9 d5 Y% ]! a8 w
注: 使用波特率值 115200 bps 进行举例说明。选择系统时钟频率时,必须要小心。为了能顺利通过 USART 进行通信,最终应用中的系统时钟频率必须保证能够产生 115200 bps 的波特率。3.2 执行 IAP 驱动程序例如,在本应用笔记中,按下连接到引脚的按钮可以启动 IAP 驱动程序。在复位时按下按钮,用户可运行 IAP 驱动程序以重写编程 STM32F4xx 的内部 Flash。当然,不一定要使用按钮,用户还可以对该引脚施加相当于有效电平的信号。请参见表 1:STM32F4xx IAP 的实现。

6 b, N: ~- v3 Y  L! X4 J
.............

/ B; [. Q, |6 r7 Z
想了解更多,请下载原文阅读

- l; o6 ]$ f4 v/ c2 D
3 u4 X& z* U7 i% `% ]0 v" J- R3 l
赞 收藏 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管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版