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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐ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 時代開始使用的,因應(yīng)儲存裝置容量和功能增加而數(shù)次改版,由于架構(gòu)簡單使得廣泛的被各種操作系統(tǒng)支持。因此使用 FAT文件系統(tǒng)讓儲存裝置在不同操作系統(tǒng)上具備良好的交換性。譬如 SD 記憶卡采用 FAT 文件系統(tǒng),相機(jī)拍攝照片存入 SD 卡,SD 卡插到 Windows PC、Linux PC 或 Mac 都可以存取。所以微控制器接 SD 卡或快閃硬盤,除了對應(yīng)的接口外,必須支持 FAT 文件系統(tǒng)才能正常存取。

RT-Thread 在文件系統(tǒng)提出完整的方案 – 虛擬文件系統(tǒng) (DFS, Device FileSystem) , 提供 POSIX 的操作接口, 支持多種類型文件系統(tǒng), 支持多種類型的儲存設(shè)備. 架構(gòu)圖如下

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)

從架構(gòu)圖可以了解 RT-Thread 整合 ELM FatFs

(http://elm-chan.org/fsw/ff/00index_e.html)

提供 FAT 兼容的文件系統(tǒng)功能。經(jīng)過塊設(shè)備 (Block Device) 存取 SD 卡或 SPI Flash。FatFs 針對資源少的小型微控制器而設(shè)計,支持長文件名、多國語系和大容量 exFAT 等等功能。有許多選項可以增減功能,進(jìn)一步縮減程序代碼大小。

這次仍以 NuMaker-IoT-M487 開發(fā)板為操作范例。這片開發(fā)板上有 Winbond W25Q32 SPIFlash 和 MicroSD 卡槽。關(guān)于開發(fā)板的介紹,請參考系列文章第一篇 “NuMaker-IoT-M487 的 RT-Thread 快速上手指南”。

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

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

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

接下來查看 SPI Flash 的部分。RT-Thread 提供 SFUD (SPI Flash Universal Driver) 做為 SPI Flash 的塊設(shè)備。依照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, 暫時不用改寫代碼。當(dāng)按下 NuMaker-IoT-M487 的Reset 鍵,終端機(jī)出現(xiàn)許多開機(jī)過程的訊息,其中查看 SPI Flash 的啟始訊息,包含發(fā)現(xiàn) Winbond SPI Flash,有 4M Bytes 容量。

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

開發(fā)板上的 SPI Flash 必須先格式化成 FAT 文件系統(tǒng)才能正常的掛載。在終端機(jī)里出現(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)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7552

    瀏覽量

    151423
  • RT-Thread
    +關(guān)注

    關(guān)注

    31

    文章

    1289

    瀏覽量

    40129

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

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

收藏 人收藏

    評論

    相關(guān)推薦

    華納云:VFS提升文件系統(tǒng)性能方面的具體實(shí)踐

    VFS(Virtual File System)通過提供統(tǒng)一的接口和抽象層,使得操作系統(tǒng)能夠以高效的方式管理和訪問不同的文件系統(tǒng)。以下是一些VFS提升文件系統(tǒng)性能方面的具體實(shí)踐示例:
    的頭像 發(fā)表于 11-27 15:59 ?175次閱讀

    Jtti:Linux中虛擬文件系統(tǒng)和容器化的關(guān)系

    Linux中,虛擬文件系統(tǒng)(VFS)和容器化技術(shù)之間有密切的關(guān)系。容器化是指通過使用容器來運(yùn)行應(yīng)用程序,而容器本質(zhì)上是宿主機(jī)上運(yùn)行的獨(dú)立進(jìn)程,它們通常共享宿主機(jī)的操作系統(tǒng)內(nèi)核和部分
    的頭像 發(fā)表于 11-27 15:38 ?150次閱讀

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

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

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

    簡介littlefs是ARM官方推出的,專為嵌入式系統(tǒng)設(shè)計的文件系統(tǒng),相比傳統(tǒng)的文件系統(tǒng),littlefs具有以下優(yōu)點(diǎn):1、自帶擦寫均衡2、支持掉電保護(hù)3、占用的
    的頭像 發(fā)表于 11-06 08:04 ?687次閱讀
    stm32單片機(jī)基于<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)和目錄的起點(diǎn),它是內(nèi)核啟動時掛載的第一個文件系統(tǒng)
    的頭像 發(fā)表于 10-05 16:50 ?423次閱讀

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

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

    小型文件系統(tǒng)如何選擇?FatFs和LittleFs優(yōu)缺點(diǎn)比較

    01? 概述 文件系統(tǒng)嵌入式系統(tǒng)中的作用不可或缺,它提供了對非易失性存儲設(shè)備(如閃存、SD卡等)上的數(shù)據(jù)進(jìn)行有效組織和管理的能力。通過文件系統(tǒng),嵌入式
    的頭像 發(fā)表于 09-29 16:14 ?1678次閱讀
    小型<b class='flag-5'>文件系統(tǒng)</b>如何選擇?FatFs和LittleFs優(yōu)缺點(diǎn)比較

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

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

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

    自己制作的簡單 Linux 文件系統(tǒng),你會發(fā)現(xiàn)終端顯示為黑白色,很不好看
    的頭像 發(fā)表于 08-12 17:29 ?550次閱讀
    如何更改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 ?487次閱讀
    如何修改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)核實(shí)現(xiàn)的虛擬文件系統(tǒng)。它扮演著一個橋梁的角色,將內(nèi)核中的設(shè)備和驅(qū)動程序信息以文件的形式呈現(xiàn)給用戶空間
    的頭像 發(fā)表于 07-08 11:37 ?875次閱讀
    linux--sysfs<b class='flag-5'>文件系統(tǒng)</b>

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

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

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

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

    【服務(wù)器數(shù)據(jù)恢復(fù)】UFS2文件系統(tǒng)數(shù)據(jù)恢復(fù)案例

    服務(wù)器數(shù)據(jù)恢復(fù)環(huán)境: 一臺服務(wù)器,虛擬系統(tǒng)為esxi,上層使用iSCSI的方式實(shí)現(xiàn)FC SAN功能,iSCSI通過FreeNAS構(gòu)建。 FreeNAS采用了UFS2文件系統(tǒng),esxi虛擬
    的頭像 發(fā)表于 01-09 14:53 ?893次閱讀