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

如何正確選擇嵌入式文件系統(tǒng)?

NFS網(wǎng)絡(luò)文件系統(tǒng)深度解析
防止根文件系統(tǒng)破壞,OverlayRootfs 讓你的設(shè)備更安全

華納云:VFS在提升文件系統(tǒng)性能方面的具體實(shí)踐
Jtti:Linux中虛擬文件系統(tǒng)和容器化的關(guān)系
虛擬化數(shù)據(jù)恢復(fù)—UFS2文件系統(tǒng)數(shù)據(jù)恢復(fù)案例
stm32單片機(jī)基于rt-thread 的 littlefs 文件系統(tǒng) 的使用

Linux根文件系統(tǒng)的掛載過(guò)程
如何構(gòu)建Linux根文件系統(tǒng)
小型文件系統(tǒng)如何選擇?FatFs和LittleFs優(yōu)缺點(diǎn)比較

想提高開發(fā)效率,不要忘記文件系統(tǒng)

如何修改buildroot和debian文件系統(tǒng)

評(píng)論