0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

RT-Thread在文件系統(tǒng)提出完整的方案:虛擬文件系統(tǒng)

RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 來源:RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 作者:RTThread物聯(lián)網(wǎng)操作 ? 2022-04-19 14:46 ? 次閱讀

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), 支持多種類型的儲存設備. 架構圖如下

06ac0056-bf94-11ec-9e50-dac502259ad0.png

(來源: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 快速上手指南”。

06bdca0c-bf94-11ec-9e50-dac502259ad0.png

在 “NuMaker-IoT-M487 的 RT-Thread 快速上手指南” 文章里的基礎范例已經(jīng)包含文件系統(tǒng)相關的設定。開啟 rtconfig.h,使用 SD 卡和 SPI Flash 已經(jīng)定義。

06dfad98-bf94-11ec-9e50-dac502259ad0.jpg

接下來查看 SPI Flash 的部分。RT-Thread 提供 SFUD (SPI Flash Universal Driver) 做為 SPI Flash 的塊設備。依照SFUD串上 SPI 底層的代碼在boardlock_dev.c,只要定義 BOARD_USING_STORAGE_SPIFLASH 就會引入。

06eed0b6-bf94-11ec-9e50-dac502259ad0.jpg

board_dev.c 往下可以看到 SPI Flash 啟始的代碼,把這個 SPI Flash 取名為 flash0。

06fedac4-bf94-11ec-9e50-dac502259ad0.jpg

接下來透過RT-Thread DFS 把 SPIFlash 以 ELMFatFs 掛在 “/” 目錄下。代碼在 applicationsmnt.c

0710d990-bf94-11ec-9e50-dac502259ad0.jpg

07278078-bf94-11ec-9e50-dac502259ad0.jpg

請繼續(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 容量。

073dc518-bf94-11ec-9e50-dac502259ad0.png

開發(fā)板上的 SPI Flash 必須先格式化成 FAT 文件系統(tǒng)才能正常的掛載。在終端機里出現(xiàn)msh />后,輸入格式化命令。

0751d3f0-bf94-11ec-9e50-dac502259ad0.png

然后再按 Reset 鍵就可以看到掛載成功的訊息。

0765444e-bf94-11ec-9e50-dac502259ad0.png

接著可以下檔案與目錄的操作,包含 echo、df、mkdir、cd、rm、cat、mv、cp、ls 等等命令。

07747252-bf94-11ec-9e50-dac502259ad0.png

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    7459

    瀏覽量

    150861
  • RT-Thread
    +關注

    關注

    31

    文章

    1261

    瀏覽量

    39842

原文標題:NuMaker-IoT-M487 演示 FatFs 文件系統(tǒng)使用

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    虛擬化數(shù)據(jù)恢復—UFS2文件系統(tǒng)數(shù)據(jù)恢復案例

    虛擬化數(shù)據(jù)恢復環(huán)境: SAN環(huán)境下通過iSCSI實現(xiàn)FreeNAS,F(xiàn)reeNAS采用的UFS2文件系統(tǒng)。物理存儲架構一臺服務器上,另外兩臺服務器上安裝ESXi虛擬
    的頭像 發(fā)表于 11-11 11:02 ?59次閱讀

    stm32單片機基于rt-thread 的 littlefs 文件系統(tǒng) 的使用

    簡介littlefs是ARM官方推出的,專為嵌入式系統(tǒng)設計的文件系統(tǒng),相比傳統(tǒng)的文件系統(tǒng),littlefs具有以下優(yōu)點:1、自帶擦寫均衡2、支持掉電保護3、占用的
    的頭像 發(fā)表于 11-06 08:04 ?175次閱讀
    stm32單片機基于<b class='flag-5'>rt-thread</b> 的 littlefs <b class='flag-5'>文件系統(tǒng)</b> 的使用

    Linux根文件系統(tǒng)的掛載過程

    Linux根文件系統(tǒng)(rootfs)是Linux系統(tǒng)中所有其他文件系統(tǒng)和目錄的起點,它是內(nèi)核啟動時掛載的第一個文件系統(tǒng)。
    的頭像 發(fā)表于 10-05 16:50 ?232次閱讀

    如何構建Linux根文件系統(tǒng)

    構建Linux根文件系統(tǒng)是一個涉及多個步驟和概念的過程,它對于Linux系統(tǒng)的啟動和運行至關重要。
    的頭像 發(fā)表于 10-05 16:47 ?198次閱讀

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

    ?同學們都知道,開發(fā)過程中文件系統(tǒng)的重要性,同樣的,4G-Cat.1模組的文件系統(tǒng)也非常重要,它通常與數(shù)據(jù)傳輸速度、存儲效率,以及數(shù)據(jù)安全性等有非常重要的關系,應用開發(fā)中也非常重要。
    的頭像 發(fā)表于 09-21 08:18 ?191次閱讀
    想提高開發(fā)效率,不要忘記<b class='flag-5'>文件系統(tǒng)</b>

    如何更改Linux文件系統(tǒng)終端顯示顏色

    自己制作的簡單 Linux 文件系統(tǒng),你會發(fā)現(xiàn)終端顯示為黑白色,很不好看
    的頭像 發(fā)表于 08-12 17:29 ?372次閱讀
    如何更改Linux<b class='flag-5'>文件系統(tǒng)</b>終端顯示顏色

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

    本文檔主要介紹沒有編譯環(huán)境的情況下,如何修改buildroot和debian文件系統(tǒng)方法,如在buildroot文件系統(tǒng)中添加文件、修改目錄等文件
    的頭像 發(fā)表于 07-22 17:46 ?399次閱讀
    如何修改buildroot和debian<b class='flag-5'>文件系統(tǒng)</b>

    怎樣修改LVGL的lv_port_fs文件,讓它使用rt-thread的DFS文件系統(tǒng)中的API函數(shù)讀取SD卡中的圖片?

    我想問一下,怎樣修改LVGL的lv_port_fs文件,可以讓它使用rt-thread的DFS文件系統(tǒng)中的API函數(shù)(這些API函數(shù)rt-thre
    發(fā)表于 07-11 06:53

    linux--sysfs文件系統(tǒng)

    sysfs文件系統(tǒng) sysfs,全稱為System Filesystem,是一個由Linux內(nèi)核實現(xiàn)的虛擬文件系統(tǒng)。它扮演著一個橋梁的角色,將內(nèi)核中的設備和驅(qū)動程序信息以文件的形式呈現(xiàn)給用戶空間
    的頭像 發(fā)表于 07-08 11:37 ?677次閱讀
    linux--sysfs<b class='flag-5'>文件系統(tǒng)</b>

    Linux系統(tǒng)如何擴展文件系統(tǒng)

    當數(shù)據(jù)盤沒有創(chuàng)建分區(qū),只設備上創(chuàng)建了文件系統(tǒng)?;蛘吒袷交擞脖P,就直接mount上系統(tǒng)使用。
    的頭像 發(fā)表于 02-21 09:53 ?786次閱讀

    鴻蒙輕內(nèi)核源碼分析:虛擬文件系統(tǒng) VFS

    VFS(Virtual File System)是文件系統(tǒng)虛擬層,它不是一個實際的文件系統(tǒng),而是一個異構文件系統(tǒng)之上的軟件粘合層,為用戶提供統(tǒng)一的類 Unix
    的頭像 發(fā)表于 02-18 14:50 ?734次閱讀

    教你Ubuntu系統(tǒng)上定制文件系統(tǒng)

    ,那么接下來,小編就為大家介紹Forlinx Desktop(Ubuntu)系統(tǒng)上定制文件系統(tǒng)的操作過程。 解壓文件系統(tǒng) 首先,找到OKT507-desktop-release源碼
    發(fā)表于 12-26 16:33

    基于RT-Thread快速上手SD NAND 虛擬文件系統(tǒng)

    RT-Thread項目工程,這里基于Draco開發(fā)板創(chuàng)建。   完整RT-thread項目默認是開啟虛擬文件系統(tǒng)組件,RT-Thread
    發(fā)表于 12-15 17:29

    如何配置只讀屬性的文件系統(tǒng)(Colibri iMX7為例)

    由于存儲介質(zhì)不同,Nand Flash 上通常采用如 jffs2、UBI 等格式文件系統(tǒng)。Toradex 的 Linux 系統(tǒng)使用 UBI 文件系統(tǒng)。
    的頭像 發(fā)表于 12-07 09:31 ?984次閱讀
    如何配置只讀屬性的<b class='flag-5'>文件系統(tǒng)</b>(Colibri iMX7為例)

    服務器數(shù)據(jù)恢復—ocfs2文件系統(tǒng)被誤格式化為Ext4文件系統(tǒng)的數(shù)據(jù)恢復案例

    由于工作人員的誤操作,將Ext4文件系統(tǒng)誤裝入到存儲中Ocfs2文件系統(tǒng)數(shù)據(jù)卷上,導致原Ocfs2文件系統(tǒng)被格式化為Ext4文件系統(tǒng)。 由于Ext4
    的頭像 發(fā)表于 12-04 10:49 ?407次閱讀
    服務器數(shù)據(jù)恢復—ocfs2<b class='flag-5'>文件系統(tǒng)</b>被誤格式化為Ext4<b class='flag-5'>文件系統(tǒng)</b>的數(shù)據(jù)恢復案例