AN3965应用笔记,AN3965

文件 0
应用笔记 使用USART实现STM32F40x/STM32F41x的IAP
1 前言 对于大多数基于Flash的系统而言,在最终产品中安装之后,能够对固件进行更新,这一点非常重要。
这一功能被称为在应用中编程(IAP)。
此应用笔记的目的就是为创建IAP应用程序提供通用准则。
STM32F4xx微控制器能够运行用户指定的固件,从而执行微处理器内置Flash的IAP。
借助这一特性,在重新编程过程中可以使用任意类型的通信协议。
本应用笔记以USART为例进行说明。
2011年10月 文档ID022104版本
1 1/11 目录 目录 AN3965
1 前言.......................................................1
2 IAP概述...................................................3 2.1原理......................................................3 2.2IAP驱动程序说明............................................3
3 运行IAP驱动程序............................................5 3.1超级终端配置...............................................5 3.2执行IAP驱动程序...........................................5
4 IAP驱动程序菜单............................................6 4.1将映像下载到内部Flash中....................................6 4.2从内部Flash上传映像........................................7 4.3执行新程序.................................................7 4.4禁止写保护.................................................7
5 STM32F4xxIAP实现总结.....................................8
6 用户程序应满足的条件........................................9
7 版本历史..................................................10 2/11 文档ID022104版本
1 AN3965
2 IAP概述 STM32F4xx器件可在意法半导体的STM324xG-EVAL评估板上实现。
IAP概述 2.1 原理 应使用所选的开发工具通过JTAG/SWD接口,或使用系统存储区中工厂内置的自举程序将IAP驱动程序编程到Flash的基址。
IAP驱动程序使用USART执行以下操作:●从超级终端将二进制文件下载到STM32F4xx内部Flash中。
●将STM32F4xx的内部Flash内容(从指定的用户应用程序地址开始)上传到二进制文 件中。
●执行用户程序。
2.2 IAP驱动程序说明 IAP驱动程序包含下列源文件: ●main.c:在此文件中对USART进行初始化并配置RCC。
然后通过menu.c文件执行主菜单。
●menu.c:包含主菜单例程。
主菜单提供了多种操作选项,包括下载新的二进制文件,上传内部Flash,执行已加载的二进制文件,去除将要被加载二进制文件页的写保护(如果这些页面被写保护)。
●flash_if.c:包含内部Flash的写入、擦除和禁止写保护功能。
●mon.c:包含从/向USART外设读取/写入相关功能●ymodem.c:使用YMODEM协议从/向超级终端应用程序接收/发送数据(a)。
如果接收数 据时出现故障,则显示错误消息“接收文件失败”。
如果成功接收数据,则将该数据编程到内部Flash的相应地址中。
然后对内部RAM内容与内部Flash内容进行比较,以验证数据是否完整。
如果数据存在不一致的情况,则显示错误消息“验证失败”。
如果映像文件大小超过允许的存储空间,或用户中止任务时,还会显示其它错误消息。
●STM32F4xx标准外设库。
用户可以按下连接到引脚的按钮来选择是执行用户应用程序,还是执行IAP重新编程:●复位时不按按钮:切换到用户应用程序。
●复位时按下按钮:显示IAP主菜单。
有关STM324xG-EVAL板上用于进入IAP模式的按钮的详细信息,请参见表1:STM32F4xxIAP的实现。
IAP流程图如图1所示。
a.Ymodem协议以1024字节块的形式发送数据。
在传送到STM32F4xx内部RAM的这些数据块中执行错误校验,以比较传送的数据和接收的数据。
未成功接收的数据块通过NAK(否定应答)应答。
有关Ymodem协议的详细信息,请参见现有文档。
文档ID022104版本
1 3/11 10 IAP概述图
1. IAP驱动程序流程图 ᓔྟ ᣝϟᣝ䪂˛৺ᰃ ߱ྟ࣪86$57ᰒ⼎,$3Џ㦰ऩ ϟ䕑ǃϞӴǃ‫ߛ‬ᤶ៪প⍜‫ֱݭ‬ᡸ AN3965 ϟ䕑᥹ᬊѠ䖯‫ࠊ‬᭛ӊ ৺៤‫ࡳ‬ ᰃᇍ)ODVK㓪⿟ ϞӴ থ䗕఼ӊ‫ݙ‬䚼)ODVKⱘ᯴‫ڣ‬ ৺ ᠔᭄᳝᥂ഛᏆ ᰃ ৺ ៤‫ࡳ‬ ᰃ ៤‫ࡳ‬㓪⿟˛ )ODVK‫ֱݭ‬ᡸ‫ߛ‬ᤶ‫ࠄ‬⫼᠋⿟ᑣ প⍜‫ֱݭ‬ᡸ ਃ‫ࡼ‬䗝乍ᄫ㡖‫ࡴ‬䕑 ‫ߛ‬ᤶ‫ࠄ‬⫼᠋⿟ᑣ ⫼᠋ᑨ⫼⿟ᑣ 䕃ӊ ᰒ⼎᥹ᬊⱘ᭛ӊⱘৡ⿄੠໻ᇣ ᰒ⼎䫭䇃⍜ᙃĀ偠䆕༅䋹ā ᰒ⼎䫭䇃⍜ᙃĀ᥹ᬊ᭛ӊ༅䋹ā ᰒ⼎䫭䇃⍜ᙃĀথ⫳䫭䇃ā DL
F 4/11 文档ID022104版本
1 AN3965
3 运行IAP驱动程序 运行IAP驱动程序 3.1 超级终端配置 要使用IAP,用户的PC必须能够运行超级终端或其它支持ymodem协议的终端程序。
本文档中使用超级终端。
图2给出了超级终端的配置。

2. COM端口属性 注: 使用波特率值115200bps进行举例说明。
选择系统时钟频率时,必须要小心。
为了能顺利通过USART进行通信,最终应用中的系统时钟频率必须保证能够产生115200bps的波特率。
3.2 执行IAP驱动程序 例如,在本应用笔记中,按下连接到引脚的按钮可以启动IAP驱动程序。
在复位时按下按钮,用户可运行IAP驱动程序以重写编程STM32F4xx的内部Flash。
当然,不一定要使用按钮,用户还可以对该引脚施加相当于有效电平的信号。
请参见表1:STM32F4xxIAP的实现。
文档ID022104版本
1 5/11 10 IAP驱动程序菜单
4 IAP驱动程序菜单 运行IAP时,超级终端窗口中显示以下菜单。

3. STM32F4xxFlash未设置写保护时的IAP驱动程序菜单 AN3965 4.1 将映像下载到内部Flash中 要通过超级终端将二进制文件下载到STM32F4xx的内部Flash中,请按以下步骤操作:
1.按下键盘上的数字
1,选择DownloadImageTotheSTM32F4xxInternalFlash(将 映像下载到STM32F4xx的内部Flash中)菜单。

2.选择Transfer(传输)菜单中的SendFile(发送文件)。

3.在Filename(文件名)字段中,键入要下载的二进制文件的文件名和路径。

4.从协议列表中选择Ymodem协议。

5.单击Send(发送)按钮。
通过以上操作,IAP驱动程序将二进制文件从指定的基址载入到STM32F4xx的内部Flash中,并在超级终端窗口中显示二进制文件的名称和大小。
有关基址设置的详细信息,请参见第6章:用户程序应满足的条件。
6/11 文档ID022104版本
1 AN3965 IAP驱动程序菜单 4.2 从内部Flash上传映像 要上传内部Flash从用户应用程序地址开始的内容时,请按以下步骤操作:
1.在键盘上按下数字
2,选择UploadimagefromtheSTM32F4xxinternalFlash(从 STM32F4xx的内部Flash上传映像)菜单。

2.选择Transfer(传输)菜单中的ReceiveFile(接收文件)。

3.选择二进制文件的保存目录。

4.从协议列表中选择Ymodem协议。

5.单击Receive(接收)按钮。
4.3 执行新程序 加载新程序后,按下键盘上的数字
3,选择ExecuteTheNewProgram(执行新程序)菜单,执行程序代码。
4.4 禁止写保护 IAP启动时,会检查要加载用户程序的Flash页面,看是否设置了写保护。
如果设置了写保护,会出现图4所示的菜单。

4. STM32F4xxFlash设置了写保护时的IAP驱动程序菜单 注: 下载新程序之前,必须禁止写保护。
为此,请按下键盘上的数字4(Disablethewriteprotection(禁止写保护))。
禁止写保护并复位系统以重载新选择的字节值。
通过复位恢复系统后,如果按下按键按钮,则显示图3所示的菜单。
本应用程序不支持读保护,因此用户必须验证Flash未设置读保护。
文档ID022104版本
1 7/11 10 STM32F4xxIAP实现总结
5 STM32F4xxIAP实现总结 AN3965 表1总结了STM32F4xxIAP的实现情况。

1. STM32F4xxIAP的实现 平台 实现 配置 IAP程序从0x8000000开始。
从Flash执行Flash例程(编程/ 擦除)。
0扇区 此程序大小约为8KB,且编程到: 固件 用户应用程序(通过IAP下载的映像)从地址0x8004000 开始
(1) 1008KB 要加载的映像的最大大小为: (1扇区-11扇区) 使用IAP从STM32F4xx的内部Flash上传的映像。
要上传1008KB 的映像大小为: (1扇区-11扇区) 按钮(有效电平:高)硬件 使用的USART 按键按钮连接到PG15引脚 USART3
1.用户应用程序位置地址在flash_if.h文件中的定义如下:#defineAPPLICATION_ADDRESS0x8004000。
要修改该地址,请将默认值改为所需的值。
STM32F4xxIAP软件包包括:●IAP程序的源文件和预配置项目(在Project\STM32F4xx_IAP目录下)●组成应用程序的源文件和预配置项目(在Project\STM32F4xx_IAP\binary_template目 录下),应用程序将使用IAP载入Flash。
此软件包中提供的readme.txt文件分步介绍了如何执行此IAP应用程序。
8/11 文档ID022104版本
1 AN3965
6 用户程序应满足的条件 用户程序应满足的条件 使用IAP载入Flash的用户应用程序应该使用以下配置设置进行构建:
1.使用工具链接器文件将程序加载地址设为0x08004000。

2.使用misc.h/.c驱动程序(在STM32F4xx_StdPeriph_Driver\inc目录下)中的“NVIC_SetVectorTable”功能,或通过修改system_stm32f4xx.c文件中定义的“VECT_TAB_OFFSET”常数值,将向量表重定位在地址0x08004000处。
预配置项目中提供了要使用IAP应用程序加载的应用程序示例。

5. Flash的用法 ))OODDVVKK催催ഄഄഔഔ  ))OODDVVKK ⫼⫼᠋᠋ҷҷⷕⷕ [[[[))))))[[ ৥৥䞣䞣㸼㸼,,$$33ҷҷⷕⷕ৥৥䞣䞣㸼㸼
1.STM32F4xx器件的Flash高地址为0x080FFFFF。
009009 文档ID022104版本
1 9/11 10 版本历史
7 版本历史 表
2. 文档版本历史 日期 版本 变更 2011年10月12日1初始版本。
AN3965 10/11 文档ID022104版本
1 AN3965 请仔细阅读: 中文翻译仅为方便阅读之目的。
该翻译也许不是对本文档最新版本的翻译,如有任何不同,以最新版本的英文原版文档为准。
本文档中信息的提供仅与ST产品有关。
意法半导体公司及其子公司(“ST”)保留随时对本文档及本文所述产品与服务进行变更、更正、修改或改进的权利,恕不另行通知。
所有ST产品均根据ST的销售条款出售。
买方自行负责对本文所述ST产品和服务的选择和使用,ST概不承担与选择或使用本文所述ST产品和服务相关的任何责任。
无论之前是否有过任何形式的表示,本文档不以任何方式对任何知识产权进行任何明示或默示的授权或许可。
如果本文档任何部分涉及任何第三方产品或服务,不应被视为ST授权使用此类第三方产品或服务,或许可其中的任何知识产权,或者被视为涉及以任何方式使用任何此类第三方产品或服务或其中任何知识产权的保证。
除非在ST的销售条款中另有说明,否则,ST对ST产品的使用和/或销售不做任何明示或默示的保证,包括但不限于有关适销性、适合特定用途(及其依据任何司法管辖区的法律的对应情况),或侵犯任何专利、版权或其他知识产权的默示保证。
意法半导体的产品不得应用于武器。
此外,意法半导体产品也不是为下列用途而设计并不得应用于下列用途:(A)对安全性有特别要求的应用,例
如,生命支持、主动植入设备或对产品功能安全有要求的系统;(B)航空应用;(C)汽车应用或汽车环境,且/或(D)航天应用或航天环境。
如果意法半导体产品不是为前述应用设计的,而采购商擅自将其用于前述应用,即使采购商向意法半导体发出了书面通知,采购商仍将独自承担因此而导致的任何风险,意法半导体的产品设计规格明确指定的汽车、汽车安全或医疗工业领域专用产品除外。
根据相关政府主管部门的规定,ESCC、QML或JAN正式认证产品适用于航天应用。
经销的ST产品如有不同于本文档中提出的声明和/或技术特点的规定,将立即导致ST针对本文所述ST产品或服务授予的任何保证失效,并且不应以任何形式造成或扩大ST的任何责任。
ST和ST徽标是ST在各个国家或地区的商标或注册商标。
本文档中的信息取代之前提供的所有信息。
ST徽标是意法半导体公司的注册商标。
其他所有名称是其各自所有者的财产。
©2013STMicroelectronics保留所有权利 意法半导体集团公司澳大利亚-比利时-巴西-加拿大-中国-捷克共和国-芬兰-法国-德国-中国香港-印度-以色列-意大利-日本-马来西亚-马耳他-摩洛哥— 菲律宾—新加坡-西班牙-瑞典-瑞士-英国-美国 文档ID022104版本
1 11/11 11

标签: #文件 #培训班 #文件 #文件 #文件 #传真 #半圆 #java