【中文文档】an3965-pg电子直营网

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

【中文文档】an3965_stm32f40x和stm32f41x基于串口的iap

[复制链接]
stmcu-管管 发布时间:2019-3-29 11:10
1 前言
' n. b9 i! y5 g1 _* x
3 r% g! e: o4 ]! b/ h  m
对于大多数基于 flash 的系统而言,在最终产品中安装之后,能够对固件进行更新,这一点非常重要。这一功能被称为在应用中编程 (iap)。此应用笔记的目的就是为创建 iap 应用程序提供通用准则。
( i- ]- x$ c. v7 g* n
( d9 ?4 _/ r* g6 tstm32f4xx 微控制器能够运行用户指定的固件,从而执行微处理器内置 flash 的 iap。借助这一特性,在重新编程过程中可以使用任意类型的通信协议。本应用笔记以 usart 为例进行说明。 g- e, a1 g0 i/ v  p0 {- ]

" w h6 c5 `  s4 p m9 h7 b! `2 w2 iap 概述 : n- u: f) a8 `* p* w, {- n- t
& h2 x9 `; z0 o, a7 d; \
stm32f4xx 器件可在意法半导体的 stm324xg-eval 评估板上实现。 " g7 | w1 l" _" q& l- ]) v

1 s; f4 r2 z0 s0 r. }% y2.1 原理 3 z* u$ q* @# h/ n5 h3 {) |( t  l

6 s/ }5 ]. d$ i1 j. ]: ~应使用所选的开发工具通过 jtag/swd 接口,或使用系统存储区中工厂内置的自举程序将iap 驱动程序编程到 flash 的基址。 ! u) i6 i- h: i; ]; e( r' d0 ]

$ ]3 o4 [4 }' v; w( e: k% fiap 驱动程序使用 usart 执行以下操作:
) ^2 `* w/ s0 o4 k4 g4 f● 从超级终端将二进制文件下载到 stm32f4xx 内部 flash 中。
) l9 b7 @5 f7 [9 ]/ d5 c● 将 stm32f4xx 的内部 flash 内容(从指定的用户应用程序地址开始)上传到二进制文件中。
7 c7 q; g3 g, u, e* p% ?● 执行用户程序。
2 {( m( y! _" e) f. p; l

3 [& n" b1 c8 j' e7 e; s8 a8 z2.2 iap 驱动程序说明iap 7 d: i, x* n3 y

* h u4 a9 v5 d5 t$ x, z$ {! _驱动程序包含下列源文件: ( e1 @' h5 f% `& }- h4 p
● main.c:在此文件中对 usart 进行初始化并配置 rcc。然后通过 menu.c 文件执行主菜单。
! m' l, ^8 k" n● menu.c:包含主菜单例程。主菜单提供了多种操作选项,包括下载新的二进制文件,上传内部 flash,执行已加载的二进制文件,去除将要被加载二进制文件页的写保护(如果这些页面被写保护)。 " [: m; z6 r6 h
● flash_if.c:包含内部 flash 的写入、擦除和禁止写保护功能。 w( a# n( j8 m) a
● common.c:包含从/向 usart 外设读取/写入相关功能
, r9 b% u, p3 b. w● ymodem.c:使用 ymodem 协议从/向超级终端应用程序接收/发送数据(a)。如果接收数据时出现故障,则显示错误消息“接收文件失败”。如果成功接收数据,则将该数据编程到内部 flash 的相应地址中。然后对内部 ram 内容与内部 flash 内容进行比较,以验证数据是否完整。如果数据存在不一致的情况,则显示错误消息“验证失败”。如果映像文件大小超过允许的存储空间,或用户中止任务时,还会显示其它错误消息。
1 [2 @/ p# e5 c● stm32f4xx 标准外设库。 * k4 |  k& f# j% c# j; b0 ?
8 g' k- h) d/ v1 u t
用户可以按下连接到引脚的按钮来选择是执行用户应用程序,还是执行 iap 重新编程: & m" k! w2 q3 j% p% {5 m
● 复位时不按按钮:切换到用户应用程序。 : u! e  f& q/ i
● 复位时按下按钮:显示 iap 主菜单。 * t. t0 g  a: y9 c' t, d# a$ n
0 y: {6 f- ^& \4 z* u
有关 stm324xg-eval 板上用于进入 iap 模式的按钮的详细信息,请参见表 1:stm32f4xxiap 的实现。 ) v! w y! z: a  f, i

! n' z9 o/ e6 r( m1 p/ hiap 流程图如图 1 所示。
2 f( s7 y- ~% u g9 ]- z: j4 ~) r- l& i0 t
3 运行 iap 驱动程序
  w3 f6 b- i8 c* j7 k! s
" l% h: c" z  s6 y' m3.1 超级终端配置 & o9 _: l! `& q4 k
6 a3 g n* y* l6 |' p& b2 i
要使用 iap,用户的 pc 必须能够运行超级终端或其它支持 ymodem 协议的终端程序。本文档中使用超级终端。图 2 给出了超级终端的配置。
% e  r# s! i% k1 a
1.png

6 e* s0 t6 n( v% q  n* _' i2 p" c- {
注: 使用波特率值 115200 bps 进行举例说明。选择系统时钟频率时,必须要小心。为了能顺利通过 usart 进行通信,最终应用中的系统时钟频率必须保证能够产生 115200 bps 的波特率。3.2 执行 iap 驱动程序例如,在本应用笔记中,按下连接到引脚的按钮可以启动 iap 驱动程序。在复位时按下按钮,用户可运行 iap 驱动程序以重写编程 stm32f4xx 的内部 flash。当然,不一定要使用按钮,用户还可以对该引脚施加相当于有效电平的信号。请参见表 1:stm32f4xx iap 的实现。
6 o/ l& \" y' \; h. e) s6 |
.............

/ i) b3 t/ v7 h1 a" z
想了解更多,请下载原文阅读
          

: v& p- m) ?5 o h; e7 g  g, s! _5 p) k
发布时间:2019-3-29 11:10
3个回答
回答时间:2019-3-29 12:47:05
收藏
回答时间:2019-4-3 14:21:45
不错
回答时间:2024-3-25 00:43:00

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

关于意法半导体
联系pg电子有官方网站吗试玩
隐私策略
关注pg电子直营网
微信公众号
手机版
网站地图