有些應用場合需要使用 Flash 儲存配置數據。大多數微控制器內建 Flash 用以儲存程序代碼。M487 微控制器內建 512K Bytes APROM 和 4K Bytes LDROM 的 Flash 內存。RT-Thread 的 fal (Flash 抽象層) 套件提供統一的操作接口分區管理與存取功能。因此利用 fal 的分區管理功能很容易在 M487 的 APROM 分割一個區塊做為數據儲存。
這次仍以 NuMaker-IoT-M487 開發板為操作范例。關于開發板的介紹,請參考系列文章第一篇 “NuMaker-IoT-M487 的 RT-Thread 快速上手指南”。
在 “NuMaker-IoT-M487 加載RT-Thread軟件包 at_device, 三分鐘上手Wi-Fi 模塊” 文章里的范例不僅包含 RT-Thread OS、at_device 套件,也加入 fal 套件。展開范例計劃里的 packages,可以看到 fal-latest,因此不用再額外加入 fal 套件。
從 RT-Thread 的 fal 套件說明 (https://packages.rt-thread.org/detail.html?package=fal) 得知叫用 init() 后,就可以對 Flash 做read()、erase()、write() 的操作。但是必須先為 fal 設定 M487 的 Flash 配置。這個范例里已經有配置。展開計劃里的 board, 開啟 fal_cfg.h。
這里配置有規劃兩個 Flash 空間,一個是 ldrom,另一個是 aprom 。 ldrom 有 4K bytes,整個都可以使用,因此從 ldrom 的地址 0 開始,大小有 4K (0x1000) 。aprom 有 512K bytes,規劃最后的 128K bytes 做為數據儲存空間,因此從 aprom 的地址 384K (0x60000) 開始, 大小有 128K (0x20000)。
請繼續按照前篇文章的步驟編譯,再把固件刻錄到 NuMaker-IoT-M487 開發板。利用 RT-Thread 的console, 可以測試 Flash, 暫且不用另寫代碼。當按下 NuMaker-IoT-M487 的Reset 鍵,終端機出現msh /》后就可以下命令。在終端機里輸入
fal probe, 列出 ldrom 和aprom 兩個 flash.
fal probe aprom, 選用 aprom
fal erase, 清除一塊區塊
fal read, 讀取結果確認是清除的, 內容都為 0xFF.
fal write, 寫入一些數據, 這里是 Nuvoton 的 ASCII 碼。
再 fal read, 確認數據寫入。
再 fal erase, fal read, 確認數據又清除了。
-
微控制器
+關注
關注
48文章
7489瀏覽量
151055 -
開發板
+關注
關注
25文章
4945瀏覽量
97201 -
代碼
+關注
關注
30文章
4750瀏覽量
68357
發布評論請先 登錄
相關推薦
評論