吴忠躺衫网络科技有限公司

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

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

3天內不再提示

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

jf_94171069 ? 來源:jf_94171069 ? 作者:jf_94171069 ? 2024-09-29 16:14 ? 次閱讀

01

概述

文件系統在嵌入式系統中的作用不可或缺,它提供了對非易失性存儲設備(如閃存、SD卡等)上的數據進行有效組織和管理的能力。通過文件系統,嵌入式系統可以像在傳統計算機上一樣創建、讀取、寫入和刪除文件,實現了數據的持久化存儲和分層次的目錄結構。文件系統的存在極大地簡化了數據管理任務,提升了系統整體的穩定性和便利性,對于系統配置、數據記錄、固件升級等多種應用場景來說至關重要。

FatFS 是一個流行的開源、輕量級、通用型的FAT文件系統模塊,專為小型嵌入式系統設計,兼容FAT12、FAT16和FAT32格式。它能夠在多種類型的存儲介質上實現文件系統的掛載和操作,常用于消費電子產品、工業控制設備以及其他資源有限的嵌入式環境中,特別是需要與個人電腦或其他設備之間進行數據交換的應用場景。

LittleFS 則是一個專門為資源有限且不穩定環境設計的嵌入式文件系統,相較于傳統的FAT文件系統,LittleFS專注于在小容量存儲設備(如SPI Flash、EEPROM等)上提供更好的耐久性和容錯能力。LittleFS主要解決嵌入式系統中因電源突然斷電或者硬件故障導致的數據丟失問題,它通過元數據的日志記錄和恢復機制確保文件系統的完整性。這種文件系統在物聯網(IoT)設備、智能傳感器節點和其它長期運行、無人值守的嵌入式系統中有著廣闊的應用前景。

02

文件系統FatFS

FatFs是一個通用的文件系統(FAT/exFAT)模塊,用于在小型嵌入式系統中實現FAT文件系統。

官方網址:

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

FatFs組件的編寫遵循ANSI C(C89),完全分離于磁盤 I/O 層,因此不依賴于硬件平臺。它可以嵌入到資源有限的微控制器中,如 8051, PIC, AVR, ARM, Z80, RX等等,不需要做任何修改。

特征

a.兼容性強:DOS/ Windows兼容的FAT/exFAT文件系統。

b.資源消耗低:代碼體積小巧,對RAM和ROM資源需求較少,平臺無關,容易移植。

c.移植性好:幾乎可以運行在任何帶有文件系統功能的嵌入式系統上。

d.支持以下各種配置選項:

ANSI / OEM或Unicode中的長文件名。

exFAT文件系統,64位LBA和GPT可存儲大量數據。

RTOS的線程安全。

多個卷(物理驅動器和分區)。

可變扇區大小。

多個代碼頁,包括DBCS。

只讀,可選API,I / O緩沖區等...

03

文件系統Littlefs

市場上有許多商業和開源嵌入式文件系統,但沒有一個能夠完全滿足我們的設計代碼大小、功能或可靠性要求,而這些對于成功部署 IoT 設備至關重要。LittleFs是一款專為嵌入式系統設計的小型故障安全文件系統。

源碼地址:

https://github.com/armmbed/mbed-littlefs

Littlefs特點:

wKgaomb5DGSAF-VfAAC7k0BnFXQ574.jpg

占用資源小:LittleFS針對小容量存儲如SPI Flash進行了優化,支持小至幾KB的存儲空間。

斷電恢復能力:LittleFS通過日志記錄和恢復機制,減少了文件系統損壞的可能性,尤其在突然斷電情況下,能夠保持數據完整性。

平均磨損:LittleFS在寫入操作上進行了優化,減少因小文件寫入引起的磨損均衡問題。

文件系統對比

每一種產物都有它存在的價值,文件系統也同樣如此,各有各的優缺點,下面簡單羅列幾點它們的區別。

1.資源RAM / ROM大小

Littlefs是Mbed OS中的高完整性嵌入式文件系統,經過優化可與RAM和ROM有限的MCU一起使用。

Littlefs高度集成的嵌入式文件系統使用比FAT少的13K ROM和少于4K的RAM。

wKgZomb5DGiAEt-kAAAgb7aCYuQ672.jpg

2.失電恢復能力

littlefs具有強大的copy-on-write保證,并且磁盤上的存儲總是保持有效狀態,可能有隨機電源故障的系統適合該文件系統。

wKgaomb5DGmAGlpjAH5fQ0Um_PM637.jpg

wKgZomb5DGqAQXzbAI0oVdOpN9Y213.jpg

3.磨損均衡

嵌入式設備使用的大多數存儲芯片都支持每個扇區有限的擦除集,如果沒有均衡,則嵌入式設備的壽命可能會受到影響

wKgaomb5DGyARRZlAEB-joplU3k543.jpg

04

結論

FatFs,如果存儲設備,例如SD卡,需要接入windows中查看存儲的內容,需要選擇FatFs。

LittleFs,如果需要更小的資源占用,磨損平衡,掉電保護功能,需要選擇LittleFs。

本文章源自奇跡物聯開源的物聯網應用知識庫Cellular IoT Wiki,更多技術干貨歡迎關注收藏Wiki:Cellular IoT Wiki 知識庫(https://rckrv97mzx.feishu.cn/wiki/wikcnBvAC9WOkEYG5CLqGwm6PHf)

歡迎同學們走進AmazIOT知識庫的世界!

這里是為物聯網人構建的技術應用百科,以便幫助你更快更簡單的開發物聯網產品。

Cellular IoT Wiki初心:

在我們長期投身于蜂窩物聯網 ODM/OEM 解決方案的實踐過程中,一直被物聯網技術碎片化與產業資源碎片化的問題所困擾。從產品定義、芯片選型,到軟硬件研發和測試,物聯網技術的碎片化以及產業資源的碎片化,始終對團隊的產品開發交付質量和效率形成制約。為了減少因物聯網碎片化而帶來的重復開發工作,我們著手對物聯網開發中高頻應用的技術知識進行沉淀管理,并基于 Bloom OS 搭建了不同平臺的 RTOS 應用生態。后來我們發現,很多物聯網產品開發團隊都面臨著相似的困擾,于是,我們決定向全體物聯網行業開發者開放奇跡物聯內部沉淀的應用技術知識庫 Wiki,期望能為更多物聯網產品開發者減輕一些重復造輪子的負擔。

Cellular IoT Wiki沉淀的技術內容方向如下:

wKgaombqoM2AYL2RAAQrZ8e-uz8392.jpg

奇跡物聯的業務服務范圍:基于自研的NB-IoT、Cat1、Cat4等物聯網模組,為客戶物聯網ODM/OEM解決方案服務。我們的研發技術中心在石家莊,PCBA生產基地分布在深圳、石家莊、北京三個工廠,滿足不同區域&不同量產規模&不同產品開發階段的生產制造任務。跟傳統PCBA工廠最大的區別是我們只服務物聯網行業客戶。

連接我們,和10000+物聯網開發者一起降低技術和成本門檻

讓蜂窩物聯網應用更簡單~~

哈哈你終于滑到最重要的模塊了,

千萬不!要!劃!走!忍住沖動!~

歡迎加入飛書“開源技術交流群”,隨時找到我們哦~

點擊鏈接如何加入奇跡物聯技術話題群(https://rckrv97mzx.feishu.cn/docx/Xskpd1cFQo7hu9x5EuicbsjTnTf)可以獲取加入技術話題群攻略

Hey 物聯網從業者,

你是否有了解過奇跡物聯的官方公眾號“eSIM物聯工場”呢?

這里是奇跡物聯的物聯網應用技術開源wiki主陣地,歡迎關注公眾號,不迷路~

及時獲得最新物聯網應用技術沉淀發布

審核編輯 黃宇

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

    關注

    5092

    文章

    19177

    瀏覽量

    307664
  • FATFS
    +關注

    關注

    0

    文章

    44

    瀏覽量

    18384
收藏 人收藏

    評論

    相關推薦

    香港主機托管和國內主機的優缺點比較

    香港主機托管和國內主機(以大陸主機為例)的優缺點比較,主機推薦小編為您整理發布香港主機托管和國內主機的優缺點比較,希望對您有幫助。
    的頭像 發表于 02-05 17:42 ?49次閱讀

    【S32K146 RT-thread】基于內部PFLASH的littlefs適配

    LittleFS是一個應用于單片機內部flash和外掛NORflash的文件系統。由于它相比傳統的FAT文件系統更適合于小型嵌入式系統,具有
    的頭像 發表于 01-14 18:32 ?310次閱讀
    【S32K146 RT-thread】基于內部PFLASH的<b class='flag-5'>littlefs</b>適配

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

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

    FPGA與ASIC的優缺點比較

    FPGA(現場可編程門陣列)與ASIC(專用集成電路)是兩種不同的硬件實現方式,各自具有獨特的優缺點。以下是對兩者優缺點比較: FPGA的優點 可編程性強 :FPGA具有高度的可編程性,可以靈活
    的頭像 發表于 10-25 09:24 ?701次閱讀

    Linux根文件系統的掛載過程

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

    rtthread支持nandflash掛載fatfs文件系統嗎?

    rtthread支持nandflash掛載fatfs文件系統
    發表于 09-27 09:45

    如何修改buildroot和debian文件系統

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

    esp32s2寫文件系統時io外部中斷觸發不及時,怎么解決?

    芯片esp32s2,idf release v4.4,目前問題,io配置為邊沿觸發,需要采集上升沿下降沿之間的脈沖寬度,假如一個40ms的脈沖,在寫文件系統時脈沖采集到的寬度為10-20ms,不寫文件系統沒問題,文件系統使用
    發表于 06-12 08:29

    如何將Littlefs安裝到通過qspi連接到電路板的外部串行閃存上?

    我正試圖在 XMC7100 V1.1 中的 qspi 外部串行閃存上閃存 littlefs 文件系統。 我看到庫中的 mtb-littlefs 不包括在 XMC7100 套件中。 如果我下載任何
    發表于 05-27 06:03

    請問FATFS文件系統可靠性如何?

    ST官方固件庫中使用了FATFS文件系統,想問下,這個文件系統可靠么? 我想了解一下,有哪位朋友真正產品上使用FATFS文件系統,可靠性有什
    發表于 05-16 06:35

    通用FAT文件系統模塊

     FatFs 是用于小型嵌入式系統的通用 FAT/exFAT 文件系統模塊。FatFs模塊按照ANSI C(C89)編寫,與磁盤I/O層完全
    發表于 05-03 10:28 ?245次閱讀
    通用FAT<b class='flag-5'>文件系統</b>模塊

    FatFS文件系統寫入的文件在PC上看不到內容是怎么回事?

    使用DiskGenius可以查看到內容。 2、寫入完成后使用該文件系統讀取文件長度為0. 3、使用DiskGenius查看文件的目錄,發現0x1C開始的值沒有變(為0)。 4、如果使用PC將
    發表于 04-17 07:09

    【嵌入式SD NAND】基于FATFS/Littlefs文件系統的日志框架實現

    文章目錄 【嵌入式】基于FATFS/Littlefs文件系統的日志框架實現 1. 概述 2. 設計概要 3. 設計實現 3.1 初始化 `init` 3.2 日志寫入 `write` 3.3 日志
    的頭像 發表于 03-14 18:13 ?1121次閱讀
    【嵌入式SD NAND】基于<b class='flag-5'>FATFS</b>/<b class='flag-5'>Littlefs</b><b class='flag-5'>文件系統</b>的日志框架實現

    【嵌入式SD NAND】基于FATFS/Littlefs文件系統的日志框架實現

    文章目錄 【嵌入式】基于FATFS/Littlefs文件系統的日志框架實現 概述 設計概要 設計實現 3.1 初始化 init 3.2 日志寫入 write 3.3 日志讀取 read 3.4 注銷
    發表于 03-14 18:12

    【嵌入式SD NAND】基于FATFS/Littlefs文件系統的日志框架實現

    文章目錄【嵌入式】基于FATFS/Littlefs文件系統的日志框架實現1.概述2.設計概要3.設計實現3.1初始化`init`3.2日志寫入`write`3.3日志讀取`read`3.4注銷
    的頭像 發表于 03-14 18:12 ?1225次閱讀
    【嵌入式SD NAND】基于<b class='flag-5'>FATFS</b>/<b class='flag-5'>Littlefs</b><b class='flag-5'>文件系統</b>的日志框架實現
    海威百家乐官网赌博机| 羊和鼠做生意摆件| 大发888大赢家| 网上百家乐洗码技巧| 百家乐官网任你博娱乐场| 县级市| 大发888 代充| 大发888登陆网页| 威尼斯人娱乐平台开户| 威尼斯人娱乐城老牌| 大发888送58体验金| 博e百娱乐城注册| 在线棋牌| 百家乐官网也能赢钱么| 六合彩票| 网络娱乐| 百家乐官网手机软件| 百家乐官网猜大小规则| 任我赢百家乐官网软件| 24山来水吉凶| 百家乐霸王闲| 澳门百家乐娱乐平台| 二八杠网| 大发888棋牌下载| 大发888娱乐城客服lm0| 博彩技巧| 百家乐官网三多注码法| 什么百家乐官网九宫三路| 缅甸百家乐论坛| 十三张百家乐的玩法技巧和规则| 大发888掉线| 岗巴县| 百家乐官网赌场代理合作| 百家乐官网游戏制作| 百家乐大赢家客户端| 大发888 dafa888| 肥乡县| 成都百家乐官网牌具| 百家乐娱乐网会员注册| 百家乐看| 大发888游戏下载官网免费|