FAT 文件系統(tǒng)是微軟 (Microsoft) 從 MS-DOS 時代開始使用的,因應儲存裝置容量和功能增加而數(shù)次改版,由于架構簡單使得廣泛的被各種操作系統(tǒng)支持。因此使用 FAT文件系統(tǒng)讓儲存裝置在不同操作系統(tǒng)上具備良好的交換性。譬如 SD 記憶卡采用 FAT 文件系統(tǒng),相機拍攝照片存入 SD 卡,SD 卡插到 Windows PC、Linux PC 或 Mac 都可以存取。所以微控制器接 SD 卡或快閃硬盤,除了對應的接口外,必須支持 FAT 文件系統(tǒng)才能正常存取。
RT-Thread 在文件系統(tǒng)提出完整的方案 – 虛擬文件系統(tǒng) (DFS, Device FileSystem) , 提供 POSIX 的操作接口, 支持多種類型文件系統(tǒng), 支持多種類型的儲存設備. 架構圖如下
(來源:RT-Thread 文文件中心 – 虛擬文件系統(tǒng). https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/filesystem/filesystem)
從架構圖可以了解 RT-Thread 整合 ELM FatFs
(http://elm-chan.org/fsw/ff/00index_e.html)
提供 FAT 兼容的文件系統(tǒng)功能。經(jīng)過塊設備 (Block Device) 存取 SD 卡或 SPI Flash。FatFs 針對資源少的小型微控制器而設計,支持長文件名、多國語系和大容量 exFAT 等等功能。有許多選項可以增減功能,進一步縮減程序代碼大小。
這次仍以 NuMaker-IoT-M487 開發(fā)板為操作范例。這片開發(fā)板上有 Winbond W25Q32 SPIFlash 和 MicroSD 卡槽。關于開發(fā)板的介紹,請參考系列文章第一篇 “NuMaker-IoT-M487 的 RT-Thread 快速上手指南”。
在 “NuMaker-IoT-M487 的 RT-Thread 快速上手指南” 文章里的基礎范例已經(jīng)包含文件系統(tǒng)相關的設定。開啟 rtconfig.h,使用 SD 卡和 SPI Flash 已經(jīng)定義。
接下來查看 SPI Flash 的部分。RT-Thread 提供 SFUD (SPI Flash Universal Driver) 做為 SPI Flash 的塊設備。依照SFUD串上 SPI 底層的代碼在boardlock_dev.c,只要定義 BOARD_USING_STORAGE_SPIFLASH 就會引入。
board_dev.c 往下可以看到 SPI Flash 啟始的代碼,把這個 SPI Flash 取名為 flash0。
接下來透過RT-Thread DFS 把 SPIFlash 以 ELMFatFs 掛在 “/” 目錄下。代碼在 applicationsmnt.c
請繼續(xù)按照前篇文章的步驟編譯,再把固件刻錄到 NuMaker-IoT-M487 開發(fā)板。利用 RT-Thread 的console, 可以測試 SPI Flash, 暫時不用改寫代碼。當按下 NuMaker-IoT-M487 的Reset 鍵,終端機出現(xiàn)許多開機過程的訊息,其中查看 SPI Flash 的啟始訊息,包含發(fā)現(xiàn) Winbond SPI Flash,有 4M Bytes 容量。
開發(fā)板上的 SPI Flash 必須先格式化成 FAT 文件系統(tǒng)才能正常的掛載。在終端機里出現(xiàn)msh />后,輸入格式化命令。
然后再按 Reset 鍵就可以看到掛載成功的訊息。
接著可以下檔案與目錄的操作,包含 echo、df、mkdir、cd、rm、cat、mv、cp、ls 等等命令。
審核編輯 :李倩
-
微控制器
+關注
關注
48文章
7459瀏覽量
150861 -
RT-Thread
+關注
關注
31文章
1261瀏覽量
39842
原文標題:NuMaker-IoT-M487 演示 FatFs 文件系統(tǒng)使用
文章出處:【微信號:RTThread,微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論