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特點:
占用資源小:LittleFS針對小容量存儲如SPI Flash進行了優化,支持小至幾KB的存儲空間。
斷電恢復能力:LittleFS通過日志記錄和恢復機制,減少了文件系統損壞的可能性,尤其在突然斷電情況下,能夠保持數據完整性。
平均磨損:LittleFS在寫入操作上進行了優化,減少因小文件寫入引起的磨損均衡問題。
文件系統對比
每一種產物都有它存在的價值,文件系統也同樣如此,各有各的優缺點,下面簡單羅列幾點它們的區別。
1.資源RAM / ROM大小
Littlefs是Mbed OS中的高完整性嵌入式文件系統,經過優化可與RAM和ROM有限的MCU一起使用。
Littlefs高度集成的嵌入式文件系統使用比FAT少的13K ROM和少于4K的RAM。
2.失電恢復能力
littlefs具有強大的copy-on-write保證,并且磁盤上的存儲總是保持有效狀態,可能有隨機電源故障的系統適合該文件系統。
3.磨損均衡
嵌入式設備使用的大多數存儲芯片都支持每個扇區有限的擦除集,如果沒有均衡,則嵌入式設備的壽命可能會受到影響
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沉淀的技術內容方向如下:
奇跡物聯的業務服務范圍:基于自研的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
發布評論請先 登錄
相關推薦
評論