概述
啟動存儲器(Boot Memory)默認是作為BOOT模式用來存放原廠固化的啟動代碼。不過,在具有AP mode系列產品上,添加了新功能,啟動存儲器也可以選擇作為主存的擴展區(AP模式)用來存放用戶自定義代碼。
注意:啟動存儲器AP模式只能設置一次不可逆,設置后原啟動存儲器BOOT模式功能不可恢復。本應用指南將介紹主存擴展的使用范例,下面以AT32F415系列為例,其中:
章節2.1介紹使用Artery ICP Programmer將啟動存儲器開啟AP模式,作為主存擴展的步驟。
章節2.2介紹項目run_in_boot_memmory在啟動存儲器執行應用程序的示例。
例程放在BSP標準庫
utilities\at32xx_boot_memmory_ap_demo\run_in_boot_memmory目錄
范例程序
使用Artery ICP Programmer將啟動存儲器作為主存擴展使用
要使用ICP Programmer,請參照以下步驟:
連接J-Link或AT-Link仿真器到AT32F415并上電;
開啟ICP programmer,選擇用J-Link或AT-Link做連接;
通過菜單欄:“設備操作”-“啟動程序存儲區AP模式”,如下圖:
圖1. ICP操作界面
為防止誤操作,需按照提示手動輸入啟用秘鑰0xA35F6D24,操作后“存儲器信息”表格中會有成功或失敗的提示信息。
關于ICP Programmer的詳細說明,請參閱ICP Programmer用戶手冊。
run_in_boot_memmory:在啟動存儲器執行應用程序
在此例程中,硬件從主存儲器啟動,主存儲器的代碼會從串口(USART1)輸出信息,啟動存儲器中的代碼會初始化LED燈并讓LED2閃爍。要在啟動存儲器執行應用程序,需對Keil進行如下設置:
設置啟動存儲器的起始位置及范圍。
圖2. 設置bootmem地址范圍到IROM2
范例程序把要載入啟動存儲器的應用代碼編寫成單獨的c文件,范例中是把LED燈閃爍的相關代碼放在run_in_boot_memmory.c,右鍵點擊.c文件在Options選項中將地址編到IROM2。
圖3. 選擇配置c文件圖4. 配置c文件編譯地址
編譯后查看分散加載描述文件(scatter file),可以看到目標文件(object file) run_in_boot_memory.o放置到了啟動存儲器。
圖5. 分散加載描述文件
添加啟動存儲器flash算法。
圖6. FLASH算法文件添加
下載并運行后可以看到對應執行結果LED閃爍。
關于雅特力雅特力科技于2016年成立,是一家致力于推動全球市場32位微控制器(MCU)創新趨勢的芯片設計公司,專注于ARM Cortex-M4/M0+的32位微控制器研發與創新,全系列采用55nm先進工藝及ARM Cortex-M4高效能或M0+低功耗內核,締造M4業界最高主頻288MHz運算效能,并支持工業級別芯片工作溫度范圍(-40°~105°)。雅特力目前已累積相當多元的終端產品成功案例:如微型打印機、掃地機、光流無人機、熱成像儀、激光雷達、工業縫紉機、伺服驅控、電競周邊市場、斷路器、ADAS、T-BOX、數字電源、電動工具等終端設備應用,廣泛地覆蓋5G、物聯網、消費、商務及工控等領域。
-
mcu
+關注
關注
146文章
17358瀏覽量
352808
發布評論請先 登錄
相關推薦
高速緩沖存儲器是內存還是外存,高速緩沖存儲器是為了解決什么
內存儲器的分類和特點是什么
STM32轉AT32代碼轉換
![STM32轉<b class='flag-5'>AT32</b>代碼轉換](https://file1.elecfans.com/web2/M00/02/F1/wKgaoma5syyAYzztAAA5LSZZo34694.png)
MSP430FRBoot-適用于MSP430? FRAM大型存儲器型號器件的主存儲器引導加載程序和無線更新
![MSP430FRBoot-適用于MSP430? FRAM大型<b class='flag-5'>存儲器</b>型號器件的<b class='flag-5'>主存儲器</b>引導加載程序和無線更新](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
AT32講堂088 | 雅特力AT32F402/F405時鐘配置
![<b class='flag-5'>AT32</b><b class='flag-5'>講堂</b>088 | 雅特力AT32F402/F405時鐘配置](https://file.elecfans.com/web2/M00/42/9C/pYYBAGJ5xmyARrXXAAALuRDQWfU330.jpg)
高速緩沖存儲器有什么作用
雅特力AT32 MCU的隨機數生成
![雅特力<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>的隨機數生成](https://file.elecfans.com/web2/M00/42/9C/pYYBAGJ5xmyARrXXAAALuRDQWfU330.jpg)
AT32講堂085 | 雅特力AT32 MCU HICK時鐘校準
![<b class='flag-5'>AT32</b><b class='flag-5'>講堂</b>085 | 雅特力<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b> HICK時鐘校準](https://file.elecfans.com/web2/M00/42/9C/pYYBAGJ5xmyARrXXAAALuRDQWfU330.jpg)
ram存儲器和rom存儲器的區別是什么
內存儲器一般由rom和ram組成嗎
外部存儲器是ROM還是RAM
虛擬存儲器的概念和特征
雅特力AT32 MCU與SEGGER攜手合作,開發量產事半功倍
淺談存儲器層次結構
![淺談<b class='flag-5'>存儲器</b>層次結構](https://file1.elecfans.com/web2/M00/C1/0F/wKgaomXS7quAei_xAAM8PgiHuxg204.png)
評論