前言
今天總結“STM32F103外部NorFlash存儲程序代碼”。今天提供的實例工程是存儲程序代碼到外部NorFlash,并執行外部NorFlash的代碼(既然存儲了程序代碼,那么肯定也會運行NorFlash的程序)。對于儲存在外部NorFlash的程序可以通過多種途徑,今天主要使用MDK-ARM工具下載程序到外部NorFlash,但是需要“編程算法”,但這些算法官方都已經寫好了的,我們只需要配置一下,直接使用就是了。
NOR FLASH是很常見的一種存儲芯片,掉電不會丟失數據。 NOR FLASH支持Execute On Chip,即程序可以直接在FLASH片內執行。這點和NAND FLASH不一樣。因此,在嵌入式系統中,NOR FLASH很適合作為程序的存儲介質。 NOR FLASH的讀取和RAM很類似,但不可以直接進行寫操作。對NOR FLASH的寫操作需要遵循特定的命令序列,最終由芯片內部的控制單元完成寫操作。
下載
今天提供下載的“軟件工程”都是在硬件板子上進行多次測試、并保證沒問題才上傳至360云盤。
今天的軟件工程下載地址(360云盤):
https://yunpan.cn/cSSbuXYC82jNu訪問密碼 8967
STM32F10x的資料可以在我360云盤下載:
https://yunpan.cn/crBUdUGdYKam2訪問密碼 ca90
內容講解
工程概要說明: 例程定義了兩個函數“Nor_Fun”存儲在外部NorFlash,即外部NorFlash程序,定義一個函數“Flash_Fun”儲存在內部FLASH,通過執行這三個函數,再打印它們函數接口對應的地址,這樣就可以檢測這三個函數儲存的位置了。
提供的工程以簡單為原則,詳細中文注釋,方便自己方便大家。
關于“STM32F103 外部SRAM作為運行內存”我把重要的幾點在下面分別講述:
一、獲取現成文件
我們使用官方標準庫,拷貝標準庫FSMC例程里面現成的算法??截悺熬幊趟惴ā钡?a href="http://www.asorrir.com/tags/keil/" target="_blank">keil安裝目錄x:\Keil_v5\ARM\Flash里面,拷貝“FLASH_NOR.ini”到我們自己創建的工程里面(隨便一個位置,方便調用,我們工程是在“\Libraries\CMSIS\DeviceSupport\startup”下面)。
二、配置Nor地址
配置Nor地址,見下圖。
注意:圖中1,2不要勾上。
三、配置編程算法
拷貝了“編程算法”就可以看見算法文件。
四、初始化NOR
路徑就是上面你拷貝的路勁。
五、打印(測試)結果
通過測試函數和依次打印的數據可以看得出外部Nor的地址是0x6400xxxx,而內部Flash地址的0x0800xxxx。說明外部Nor函數確實儲存在外部NorFlash里面。
說明
今天提供的軟件工程基于STM32F103大容量芯片,中等及小容量芯片沒有FSMC功能,自然也不能使用。其實只要適當修改工程的部分配置,STM32F1有FSCM功能的芯片都適用。由于這一塊的知識相對來說復雜一點,還有很多地方沒有講解到位,請根據提供的工程自行研究。
-
存儲
+關注
關注
13文章
4499瀏覽量
87053 -
STM32F10
+關注
關注
0文章
46瀏覽量
15813 -
NORFlash
+關注
關注
0文章
25瀏覽量
9560
發布評論請先 登錄
評論