084425 发表于 2020-7-10 23:15

AN0066—出厂BootLoader地址区域设置为用户区域(AP模式)

本帖最后由 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. 分散加载描述文件


[*]添加系统存储器flash算法。
图5. FLASH 算法文件添加


[*]下载并运行后可以看到对应执行结果LED闪烁。

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 版本历史
2019.07.29 1.0.0 最初版本










wsnsyy 发表于 2021-4-9 18:28

这个范例程序在哪里下载啊

muyichuan2012 发表于 2021-4-9 19:23

bsp 里utility文件夹

别看我照片 发表于 2021-4-10 18:39

感谢楼主的分享,不错的,是不是,不错的。

明天真的好 发表于 2021-4-10 19:25

这个资料确实很详细,感谢楼主的分享。

imdx 发表于 2021-4-10 20:33

出厂的bootloader还是留着比较好。

weifeng90 发表于 2021-4-12 07:24

感谢楼主的讲解,学习了。

自己造声卡 发表于 2021-4-12 08:38

这个资料太重要了。感谢楼主的分享,不错的。

oyster7487 发表于 2021-8-12 14:06

我這邊使用 F421 測試 run_in_SysMem 完全沒有反應.(LED也沒有閃爍)
有大大遇過類似的問題嗎?

NOTE: 已使用 ICP 設定MCU為 AP模式.

oyster7487 发表于 2021-8-12 14:14

各位大大
我發現只要把 printf的兩行Mask,
程式就可以正常執行了.
有人知道為什麼嗎?

xyy211502 发表于 2025-3-28 10:52

楼主,2.3的官网新的历程里面没有了,哪里能下载到
页: [1]
查看完整版本: AN0066—出厂BootLoader地址区域设置为用户区域(AP模式)