那曲檬骨新材料有限公司

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

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

3天內不再提示

RT-Thread在文件系統提出完整的方案:虛擬文件系統

RTThread物聯網操作系統 ? 來源:RTThread物聯網操作系統 ? 作者:RTThread物聯網操作 ? 2022-04-19 14:46 ? 次閱讀

FAT 文件系統是微軟 (Microsoft) 從 MS-DOS 時代開始使用的,因應儲存裝置容量和功能增加而數次改版,由于架構簡單使得廣泛的被各種操作系統支持。因此使用 FAT文件系統讓儲存裝置在不同操作系統上具備良好的交換性。譬如 SD 記憶卡采用 FAT 文件系統,相機拍攝照片存入 SD 卡,SD 卡插到 Windows PC、Linux PC 或 Mac 都可以存取。所以微控制器接 SD 卡或快閃硬盤,除了對應的接口外,必須支持 FAT 文件系統才能正常存取。

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

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

(來源:RT-Thread 文文件中心 – 虛擬文件系統. 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 兼容的文件系統功能。經過塊設備 (Block Device) 存取 SD 卡或 SPI Flash。FatFs 針對資源少的小型微控制器而設計,支持長文件名、多國語系和大容量 exFAT 等等功能。有許多選項可以增減功能,進一步縮減程序代碼大小。

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

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

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

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

請繼續按照前篇文章的步驟編譯,再把固件刻錄到 NuMaker-IoT-M487 開發板。利用 RT-Thread 的console, 可以測試 SPI Flash, 暫時不用改寫代碼。當按下 NuMaker-IoT-M487 的Reset 鍵,終端機出現許多開機過程的訊息,其中查看 SPI Flash 的啟始訊息,包含發現 Winbond SPI Flash,有 4M Bytes 容量。

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

開發板上的 SPI Flash 必須先格式化成 FAT 文件系統才能正常的掛載。在終端機里出現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

審核編輯 :李倩

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

    關注

    48

    文章

    7651

    瀏覽量

    152123
  • RT-Thread
    +關注

    關注

    31

    文章

    1305

    瀏覽量

    40390

原文標題:NuMaker-IoT-M487 演示 FatFs 文件系統使用

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    防止根文件系統破壞,OverlayRootfs 讓你的設備更安全

    多個文件系統層合并成一個單一的視圖,Linux系統中廣泛應用。使用OverlayRootfs的設備可以很輕松的實現:根文件系統寫保護、恢復出廠設置功能。根
    的頭像 發表于 01-08 16:33 ?251次閱讀
    防止根<b class='flag-5'>文件系統</b>破壞,OverlayRootfs 讓你的設備更安全

    華納云:VFS提升文件系統性能方面的具體實踐

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

    Jtti:Linux中虛擬文件系統和容器化的關系

    Linux中,虛擬文件系統(VFS)和容器化技術之間有密切的關系。容器化是指通過使用容器來運行應用程序,而容器本質上是宿主機上運行的獨立進程,它們通常共享宿主機的操作系統內核和部分
    的頭像 發表于 11-27 15:38 ?192次閱讀

    虛擬化數據恢復—UFS2文件系統數據恢復案例

    虛擬化數據恢復環境: SAN環境下通過iSCSI實現FreeNAS,FreeNAS采用的UFS2文件系統。物理存儲架構一臺服務器上,另外兩臺服務器上安裝ESXi虛擬
    的頭像 發表于 11-11 11:02 ?221次閱讀

    stm32單片機基于rt-thread 的 littlefs 文件系統 的使用

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

    Linux根文件系統的掛載過程

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

    如何構建Linux根文件系統

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

    小型文件系統如何選擇?FatFs和LittleFs優缺點比較

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

    想提高開發效率,不要忘記文件系統

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

    如何更改Linux文件系統終端顯示顏色

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

    如何修改buildroot和debian文件系統

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

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

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

    linux--sysfs文件系統

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

    Linux系統如何擴展文件系統

    當數據盤沒有創建分區,只設備上創建了文件系統?;蛘吒袷交擞脖P,就直接mount上系統使用。
    的頭像 發表于 02-21 09:53 ?883次閱讀

    鴻蒙輕內核源碼分析:虛擬文件系統 VFS

    VFS(Virtual File System)是文件系統虛擬層,它不是一個實際的文件系統,而是一個異構文件系統之上的軟件粘合層,為用戶提供統一的類 Unix
    的頭像 發表于 02-18 14:50 ?920次閱讀
    六合彩开奖现场直播| 百家乐官网优博娱乐城| 百家乐官网游戏什么时间容易出对| 菲律宾太阳城88| 玩百家乐官网澳门皇宫娱乐城 | 百家乐官网的打法技巧| 娱乐城百家乐怎么样| 博客国际娱乐| 百家乐有免费玩| 大发棋牌游戏| 做生意开店风水| 百樂坊娱乐场| 现场百家乐平台源码| 大发888娱乐城送钱| 澳门百家乐官网心| 丽都棋牌下载| 属虎和属猴牛人做生意| 金龙博彩网| 百家乐双倍派彩的娱乐城| 百家乐官网游戏策略| 缅甸百家乐的玩法技巧和规则| 百家乐官网注码技术打法| 大发888bocai官方下载| 百家乐官网平注法到6568| 永和县| 百家乐英皇赌场娱乐网规则 | 澳门百家乐官网官方网站破解百家乐官网技巧| 棋牌类玩具| 百家乐注册开户送现金| 百家乐官网开户送百元| KTV百家乐的玩法技巧和规则| 网上百家乐官网游戏下载| 金煌棋牌官网| 澳门百家乐是骗人的| 网络百家乐官网可信吗| 全讯网3344555.com| 利来百家乐官网娱乐| 百家乐官网技巧运气| 威尼斯人娱乐城代理| 定制百家乐官网桌子| 大三巴百家乐的玩法技巧和规则|