01
概述
文件系統(tǒng)在嵌入式系統(tǒng)中的作用不可或缺,它提供了對非易失性存儲設(shè)備(如閃存、SD卡等)上的數(shù)據(jù)進行有效組織和管理的能力。通過文件系統(tǒng),嵌入式系統(tǒng)可以像在傳統(tǒng)計算機上一樣創(chuàng)建、讀取、寫入和刪除文件,實現(xiàn)了數(shù)據(jù)的持久化存儲和分層次的目錄結(jié)構(gòu)。文件系統(tǒng)的存在極大地簡化了數(shù)據(jù)管理任務(wù),提升了系統(tǒng)整體的穩(wěn)定性和便利性,對于系統(tǒng)配置、數(shù)據(jù)記錄、固件升級等多種應(yīng)用場景來說至關(guān)重要。
FatFS 是一個流行的開源、輕量級、通用型的FAT文件系統(tǒng)模塊,專為小型嵌入式系統(tǒng)設(shè)計,兼容FAT12、FAT16和FAT32格式。它能夠在多種類型的存儲介質(zhì)上實現(xiàn)文件系統(tǒng)的掛載和操作,常用于消費電子產(chǎn)品、工業(yè)控制設(shè)備以及其他資源有限的嵌入式環(huán)境中,特別是需要與個人電腦或其他設(shè)備之間進行數(shù)據(jù)交換的應(yīng)用場景。
LittleFS 則是一個專門為資源有限且不穩(wěn)定環(huán)境設(shè)計的嵌入式文件系統(tǒng),相較于傳統(tǒng)的FAT文件系統(tǒng),LittleFS專注于在小容量存儲設(shè)備(如SPI Flash、EEPROM等)上提供更好的耐久性和容錯能力。LittleFS主要解決嵌入式系統(tǒng)中因電源突然斷電或者硬件故障導(dǎo)致的數(shù)據(jù)丟失問題,它通過元數(shù)據(jù)的日志記錄和恢復(fù)機制確保文件系統(tǒng)的完整性。這種文件系統(tǒng)在物聯(lián)網(wǎng)(IoT)設(shè)備、智能傳感器節(jié)點和其它長期運行、無人值守的嵌入式系統(tǒng)中有著廣闊的應(yīng)用前景。
02
文件系統(tǒng)FatFS
FatFs是一個通用的文件系統(tǒng)(FAT/exFAT)模塊,用于在小型嵌入式系統(tǒng)中實現(xiàn)FAT文件系統(tǒng)。
官方網(wǎng)址:
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文件系統(tǒng)。
b.資源消耗低:代碼體積小巧,對RAM和ROM資源需求較少,平臺無關(guān),容易移植。
c.移植性好:幾乎可以運行在任何帶有文件系統(tǒng)功能的嵌入式系統(tǒng)上。
d.支持以下各種配置選項:
ANSI / OEM或Unicode中的長文件名。
exFAT文件系統(tǒng),64位LBA和GPT可存儲大量數(shù)據(jù)。
RTOS的線程安全。
多個卷(物理驅(qū)動器和分區(qū))。
可變扇區(qū)大小。
多個代碼頁,包括DBCS。
只讀,可選API,I / O緩沖區(qū)等...
03
文件系統(tǒng)Littlefs
市場上有許多商業(yè)和開源嵌入式文件系統(tǒng),但沒有一個能夠完全滿足我們的設(shè)計代碼大小、功能或可靠性要求,而這些對于成功部署 IoT 設(shè)備至關(guān)重要。LittleFs是一款專為嵌入式系統(tǒng)設(shè)計的小型故障安全文件系統(tǒng)。
源碼地址:
https://github.com/armmbed/mbed-littlefs
Littlefs特點:
占用資源?。篖ittleFS針對小容量存儲如SPI Flash進行了優(yōu)化,支持小至幾KB的存儲空間。
斷電恢復(fù)能力:LittleFS通過日志記錄和恢復(fù)機制,減少了文件系統(tǒng)損壞的可能性,尤其在突然斷電情況下,能夠保持?jǐn)?shù)據(jù)完整性。
平均磨損:LittleFS在寫入操作上進行了優(yōu)化,減少因小文件寫入引起的磨損均衡問題。
文件系統(tǒng)對比
每一種產(chǎn)物都有它存在的價值,文件系統(tǒng)也同樣如此,各有各的優(yōu)缺點,下面簡單羅列幾點它們的區(qū)別。
1.資源RAM / ROM大小
Littlefs是Mbed OS中的高完整性嵌入式文件系統(tǒng),經(jīng)過優(yōu)化可與RAM和ROM有限的MCU一起使用。
Littlefs高度集成的嵌入式文件系統(tǒng)使用比FAT少的13K ROM和少于4K的RAM。
2.失電恢復(fù)能力
littlefs具有強大的copy-on-write保證,并且磁盤上的存儲總是保持有效狀態(tài),可能有隨機電源故障的系統(tǒng)適合該文件系統(tǒng)。
3.磨損均衡
嵌入式設(shè)備使用的大多數(shù)存儲芯片都支持每個扇區(qū)有限的擦除集,如果沒有均衡,則嵌入式設(shè)備的壽命可能會受到影響
04
結(jié)論
FatFs,如果存儲設(shè)備,例如SD卡,需要接入windows中查看存儲的內(nèi)容,需要選擇FatFs。
LittleFs,如果需要更小的資源占用,磨損平衡,掉電保護功能,需要選擇LittleFs。
本文章源自奇跡物聯(lián)開源的物聯(lián)網(wǎng)應(yīng)用知識庫Cellular IoT Wiki,更多技術(shù)干貨歡迎關(guān)注收藏Wiki:Cellular IoT Wiki 知識庫(https://rckrv97mzx.feishu.cn/wiki/wikcnBvAC9WOkEYG5CLqGwm6PHf)
歡迎同學(xué)們走進AmazIOT知識庫的世界!
這里是為物聯(lián)網(wǎng)人構(gòu)建的技術(shù)應(yīng)用百科,以便幫助你更快更簡單的開發(fā)物聯(lián)網(wǎng)產(chǎn)品。
Cellular IoT Wiki初心:
在我們長期投身于蜂窩物聯(lián)網(wǎng) ODM/OEM 解決方案的實踐過程中,一直被物聯(lián)網(wǎng)技術(shù)碎片化與產(chǎn)業(yè)資源碎片化的問題所困擾。從產(chǎn)品定義、芯片選型,到軟硬件研發(fā)和測試,物聯(lián)網(wǎng)技術(shù)的碎片化以及產(chǎn)業(yè)資源的碎片化,始終對團隊的產(chǎn)品開發(fā)交付質(zhì)量和效率形成制約。為了減少因物聯(lián)網(wǎng)碎片化而帶來的重復(fù)開發(fā)工作,我們著手對物聯(lián)網(wǎng)開發(fā)中高頻應(yīng)用的技術(shù)知識進行沉淀管理,并基于 Bloom OS 搭建了不同平臺的 RTOS 應(yīng)用生態(tài)。后來我們發(fā)現(xiàn),很多物聯(lián)網(wǎng)產(chǎn)品開發(fā)團隊都面臨著相似的困擾,于是,我們決定向全體物聯(lián)網(wǎng)行業(yè)開發(fā)者開放奇跡物聯(lián)內(nèi)部沉淀的應(yīng)用技術(shù)知識庫 Wiki,期望能為更多物聯(lián)網(wǎng)產(chǎn)品開發(fā)者減輕一些重復(fù)造輪子的負(fù)擔(dān)。
Cellular IoT Wiki沉淀的技術(shù)內(nèi)容方向如下:
奇跡物聯(lián)的業(yè)務(wù)服務(wù)范圍:基于自研的NB-IoT、Cat1、Cat4等物聯(lián)網(wǎng)模組,為客戶物聯(lián)網(wǎng)ODM/OEM解決方案服務(wù)。我們的研發(fā)技術(shù)中心在石家莊,PCBA生產(chǎn)基地分布在深圳、石家莊、北京三個工廠,滿足不同區(qū)域&不同量產(chǎn)規(guī)模&不同產(chǎn)品開發(fā)階段的生產(chǎn)制造任務(wù)。跟傳統(tǒng)PCBA工廠最大的區(qū)別是我們只服務(wù)物聯(lián)網(wǎng)行業(yè)客戶。
連接我們,和10000+物聯(lián)網(wǎng)開發(fā)者一起降低技術(shù)和成本門檻
讓蜂窩物聯(lián)網(wǎng)應(yīng)用更簡單~~
哈哈你終于滑到最重要的模塊了,
千萬不!要!劃!走!忍住沖動!~
歡迎加入飛書“開源技術(shù)交流群”,隨時找到我們哦~
點擊鏈接如何加入奇跡物聯(lián)技術(shù)話題群(https://rckrv97mzx.feishu.cn/docx/Xskpd1cFQo7hu9x5EuicbsjTnTf)可以獲取加入技術(shù)話題群攻略
Hey 物聯(lián)網(wǎng)從業(yè)者,
你是否有了解過奇跡物聯(lián)的官方公眾號“eSIM物聯(lián)工場”呢?
這里是奇跡物聯(lián)的物聯(lián)網(wǎng)應(yīng)用技術(shù)開源wiki主陣地,歡迎關(guān)注公眾號,不迷路~
及時獲得最新物聯(lián)網(wǎng)應(yīng)用技術(shù)沉淀發(fā)布
審核編輯 黃宇
-
嵌入式
+關(guān)注
關(guān)注
5092文章
19178瀏覽量
307693 -
FATFS
+關(guān)注
關(guān)注
0文章
44瀏覽量
18386
發(fā)布評論請先 登錄
相關(guān)推薦
香港主機托管和國內(nèi)主機的優(yōu)缺點比較
【S32K146 RT-thread】基于內(nèi)部PFLASH的littlefs適配
![【S32K146 RT-thread】基于內(nèi)部PFLASH的<b class='flag-5'>littlefs</b>適配](https://file1.elecfans.com/web2/M00/C4/8A/wKgZomX0EhWACv8DAAAUet8ikhs451.png)
stm32單片機基于rt-thread 的 littlefs 文件系統(tǒng) 的使用
![stm32單片機基于rt-thread 的 <b class='flag-5'>littlefs</b> <b class='flag-5'>文件系統(tǒng)</b> 的使用](https://file1.elecfans.com/web2/M00/C4/8A/wKgZomX0EhWACv8DAAAUet8ikhs451.png)
FPGA與ASIC的優(yōu)缺點比較
Linux根文件系統(tǒng)的掛載過程
如何修改buildroot和debian文件系統(tǒng)
![如何修改buildroot和debian<b class='flag-5'>文件系統(tǒng)</b>](https://file1.elecfans.com/web2/M00/FD/B9/wKgZomaeKpCAeS1mAAJr5bnMFl8719.png)
esp32s2寫文件系統(tǒng)時io外部中斷觸發(fā)不及時,怎么解決?
如何將Littlefs安裝到通過qspi連接到電路板的外部串行閃存上?
請問FATFS文件系統(tǒng)可靠性如何?
通用FAT文件系統(tǒng)模塊
![通用FAT<b class='flag-5'>文件系統(tǒng)</b>模塊](https://file1.elecfans.com/web2/M00/D2/5A/wKgaomYjKCSAABUtAAAZSvPHgJE423.png)
FatFS文件系統(tǒng)寫入的文件在PC上看不到內(nèi)容是怎么回事?
【嵌入式SD NAND】基于FATFS/Littlefs文件系統(tǒng)的日志框架實現(xiàn)
![【嵌入式SD NAND】基于<b class='flag-5'>FATFS</b>/<b class='flag-5'>Littlefs</b><b class='flag-5'>文件系統(tǒng)</b>的日志框架實現(xiàn)](https://file1.elecfans.com//web2/M00/C4/65/wKgZomXyza2APA-TACTREhVCSEw691.png)
【嵌入式SD NAND】基于FATFS/Littlefs文件系統(tǒng)的日志框架實現(xiàn)
【嵌入式SD NAND】基于FATFS/Littlefs文件系統(tǒng)的日志框架實現(xiàn)
![【嵌入式SD NAND】基于<b class='flag-5'>FATFS</b>/<b class='flag-5'>Littlefs</b><b class='flag-5'>文件系統(tǒng)</b>的日志框架實現(xiàn)](https://file1.elecfans.com/web2/M00/C5/4F/wKgaomXyzQWAOuZPAADeOXPjtqE725.png)
評論