跳转到主要内容

AT32 MCU如何设定启动存储器为主存扩展

<strong><font color="#4e5e9e">概述 </font> </strong>

启动存储器(Boot Memory)默认是作为BOOT模式用来存放原厂固化的启动代码。不过,在具有AP mode系列产品上,添加了新功能,启动存储器也可以选择作为主存的扩展区(AP模式)用来存放用户自定义代码。

注意:启动存储器AP模式只能设置一次不可逆,设置后原启动存储器BOOT模式功能不可恢复。

本应用指南将介绍主存扩展的使用范例,下面以AT32F415系列为例,其中:

<ul>
<li>
<p>章节2.1介绍使用Artery ICP Programmer将启动存储器开启AP模式,作为主存扩展的步骤。</p>
</li>
<li>
<p>章节2.2介绍项目run_in_boot_memmory在启动存储器执行应用程序的示例。</p>
</li>
<li>
<p>例程放在BSP标准库</p>
<p>utilities\at32xx_boot_memmory_ap_demo\run_in_boot_memmory目录</p>
</li>
</ul>

<strong><font color="#4e5e9e">范例程序 </font> </strong>

使用Artery ICP Programmer将启动存储器作为主存扩展使用

要使用ICP Programmer,请参照以下步骤:

<ul>
<li>
<p>连接J-Link或AT-Link仿真器到AT32F415并上电;</p>
</li>
<li>
<p>开启ICP programmer,选择用J-Link或AT-Link做连接;</p>
</li>
<li>
<p>通过菜单栏:&ldquo;设备操作&rdquo;-&ldquo;启动程序存储区AP模式&rdquo;,如下图:</p>
</li>
</ul>

<center><img src="http://mcu.eetrend.com/files/2022-09/wen_zhang_/100564224-271773-1.png&…; alt=“图1. ICP操作界面" /></center><center><i>图1. ICP操作界面</i></center>

<ul>
<li>
<p>为防止误操作,需按照提示手动输入启用秘钥0xA35F6D24,操作后&ldquo;存储器信息&rdquo;表格中会有成功或失败的提示信息。</p>
</li>
<li>
<p>关于ICP Programmer的详细说明,请参阅ICP Programmer用户手册。</p>
</li>
</ul>

<strong>run_in_boot_memmory:在启动存储器执行应用程序</strong>

在此例程中,硬件从主存储器启动,主存储器的代码会从串口(USART1)输出信息,启动存储器中的代码会初始化LED灯并让LED2闪烁。要在启动存储器执行应用程序,需对Keil进行如下设置:

<ul>
<li>
<p>设置启动存储器的起始位置及范围。</p>
</li>
</ul>

<center><img src="http://mcu.eetrend.com/files/2022-09/wen_zhang_/100564224-271774-2.png&…; alt=“图2. 设置bootmem地址范围到IROM2" /></center><center><i>图2. 设置bootmem地址范围到IROM2</i></center>

<ul>
<li>
<p>范例程序把要载入启动存储器的应用代码编写成单独的c文件,范例中是把LED灯闪烁的相关代码放在run_in_boot_memmory.c,右键点击.c文件在Options选项中将地址编到IROM2。</p>
</li>
</ul>

<center><img src="http://mcu.eetrend.com/files/2022-09/wen_zhang_/100564224-271775-3.png&…; alt=“图3. 选择配置c文件" /></center><center><i>图3. 选择配置c文件</i></center>
<center><img src="http://mcu.eetrend.com/files/2022-09/wen_zhang_/100564224-271776-4.png&…; alt=“图4. 配置c文件编译地址" /></center><center><i>图4. 配置c文件编译地址</i></center>

<ul>
<li>
<p>编译后查看分散加载描述文件(scatter file),可以看到目标文件(object file) run_in_boot_memory.o放置到了启动存储器。</p>
</li>
</ul>

<center><img src="http://mcu.eetrend.com/files/2022-09/wen_zhang_/100564224-271777-5.png&…; alt=“图5. 分散加载描述文件" /></center><center><i>图5. 分散加载描述文件</i></center>

<ul>
<li>
<p>添加启动存储器flash算法。</p>
</li>
</ul>

<center><img src="http://mcu.eetrend.com/files/2022-09/wen_zhang_/100564224-271778-6.png&…; alt=“图6. FLASH算法文件添加" /></center><center><i>图6. FLASH算法文件添加</i></center>

<ul>
<li>
<p>下载并运行后可以看到对应执行结果LED闪烁。</p>
</li>
</ul>

来源:<a href="https://mp.weixin.qq.com/s/yUU5xtRdrsfAKLpO2MqECw">AT32 MCU 雅特力科技</a>
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。