本帖最后由 084425 于 2020-7-18 19:30 编辑
AN0066—出厂BootLoader地址区域设置为用户区域(AP模式)
这篇应用笔记主要阐述在AT32F415系列上设定系统存储器为主存扩展的方法及范例程序。
支持型号
AT32F415xx
AT32F421xx
目录
1 概述 ............................ 5
2 范例程序 .................... 6
2.1 使用Artery ICP Programmer 将系统存储器作为主存扩展使用 .... 6
2.2 run_in_SysMem:在系统存储器执行应用程序 ......................... 6
2.3 IAP_APP_Demo:系统存储器程序IAP+APP 应用 ..................... 8
3 版本历史 .................... 11
1 概述
系统存储器 (System Memory) 默认是作为BOOT模式用来存放原厂固化的启动代码。不过,在
AT32F415系列产品上,添加了新功能,系统存储器也可以选择作为主存的扩展区(AP模式)用来存放
用户自定义代码。
注意:系统存储器AP模式只能设置一次不可逆,设置后原系统存储器BOOT模式功能不可恢复。
本应用指南将介绍主存扩展的使用范例,其中:
- 章节2.1介绍使用Artery ICP Programmer将系统存储器开启AP模式,作为主存扩展的步骤。
- 章节2.2介绍项目run_in_SysMem:在系统存储器执行应用程序的示例。
- 章节2.3介绍项目IAP_APP_Demo:硬件电路从系统存储器启动,系统存储器程序作为用户
IAP,主存储器程序用作用户APP的示例。
- 例程放在标准库AT32F4xx_StdPeriph_Lib_V1.x.x\Utilities\AT32F415_SysMem_AP_Demo目
录。
2 范例程序
2.1 使用Artery ICP Programmer 将系统存储器作为主存扩展使用
要使用ICP Programmer,请参照以下步骤:
- 连接J-Link或AT-Link仿真器到AT-START-F415板子上并上电;
- 开启ICP programmer,选择用J-Link或AT-Link做连接;
- 通过菜单栏:“设备操作” - “系统存储区AP模式” ,如下图:
图1. ICP 操作界面
- 为防止误操作,需按照提示手动输入启用秘钥0xA35F6D24,操作后“存储器信息”表格中会有
成功或失败的提示信息。
- 关于ICP Programmer的详细说明,请参阅ICP Programmer用户手册。
2.2 run_in_SysMem:在系统存储器执行应用程序
在此项目中,硬件从主存储器启动,主存储器的代码会从串口(USART1)输出信息,系统存储器中的
代码会让LED灯(LED2)闪烁。要在系统存储器执行应用程序,需对Keil进行如下设置:
- 本范例程序把要载入系统存储器的应用代码编写成单独的c文件与h文件,并放在同一个群组
中。范例中是把LED灯闪烁的相关代码run_in_SysMem.c与run_in_SysMem.h放在SysMem群组。
图2. SysMem 群组
图3. 设置SysMem 地址范围到IROM2
- 修改分散加载描述文件(scatter file),本范例的scatter file在\run_in_SysMem目录下。本范例新
添加了名为LR_IROM2的加载区,起始位置与范围和系统存储器一致,并将需要放到系统存储器
的代码的目标文件(object file) run_in_SysMem.o放置其中。
图4. 分散加载描述文件
图5. FLASH 算法文件添加
2.3 IAP_APP_Demo:系统存储器程序IAP+APP 应用
在此项目中,硬件从系统存储器启动,整个demo分为两个项目工程,系统存储器程序作为用户
IAP,主存储器程序用作用户APP。
- IAP工程(SYSMEM_IAP_Bootloader)
整个工程代码运行在系统存储器,运行后从串口(USART1)输出信息,然后执行跳转程序,跳转到主
存储器。
工程的配置及flash算法需要选择对应系统存储器参数,如下图:
图6. IAP 工程配置
图7. IAP FLASH 算法文件添加
- APP工程(SYSMEM_APP_LED_Toggle):
整个工程代码运行在主存储器,当IAP运行并跳转过来后,运行从串口(USART1)输出信息,并且会
让LED灯(LED2/3/4)轮流闪烁。
工程的配置及flash算法需要选择对应主存储器参数,如下图:
图8. APP 工程配置
图9. APP FLASH 算法文件添加
3 版本历史
|