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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

文件系統(tǒng)FatFS和LittleFS的區(qū)別

strongerHuang ? 來源:strongerHuang ? 作者:strongerHuang ? 2022-03-25 19:45 ? 次閱讀
對于許多嵌入式電子設(shè)備而言,擁有一個小型且具有“彈性”的文件系統(tǒng)至關(guān)重要。

MCU上運(yùn)行的文件系統(tǒng)不多,絕大部分人應(yīng)該知道FatFS這個文件系統(tǒng),今天就給大家講講FatFS和LittleFS的內(nèi)容,以及他們之間的一些差異。

文件系統(tǒng)FatFS

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

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

---來自百度百科

特征

a.DOS/ Windows兼容的FAT/exFAT文件系統(tǒng)。

b.平臺無關(guān),容易移植。

c.程序代碼和工作區(qū)的占用空間非常小。

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

  • ANSI / OEM或Unicode中的長文件名。
  • exFAT文件系統(tǒng),64位LBA和GPT可存儲大量數(shù)據(jù)。
  • RTOS的線程安全。
  • 多個卷(物理驅(qū)動器和分區(qū))。
  • 可變扇區(qū)大小。
  • 多個代碼頁,包括DBCS。
  • 只讀,可選API,I / O緩沖區(qū)等...

文件系統(tǒng)FatFS和LittleFS的區(qū)別
文件系統(tǒng)FatFS和LittleFS的區(qū)別

如果你會使用STM32CubeMX,想要使用FatFS非常容易,輕松幾步就能將STM32“變成”一個U盤。

文件系統(tǒng)Littlefs

知道Littlefs文件系統(tǒng)的人相對比較少,但是如果使用過Mbed OS系統(tǒng)的人絕大部分都應(yīng)該知道。

Mbed OS是Arm公司針對Cortex-M系列處理器,面向IoT開發(fā)的一套免費(fèi)、開源開源嵌入式操作系統(tǒng),專門為物聯(lián)網(wǎng)中的“things”而設(shè)計。

文件系統(tǒng)FatFS和LittleFS的區(qū)別

而Littlefs只是Mbed其中的一部分內(nèi)容,如下框圖:

文件系統(tǒng)FatFS和LittleFS的區(qū)別

Littlefs特點:

  • 占用資源?。何锫?lián)網(wǎng)設(shè)備受到ROMRAM的限制。

  • 斷電恢復(fù)能力:要求文件系統(tǒng)保持一致,并將數(shù)據(jù)刷新到底層存儲。

  • 平均磨損:通常情況下,存儲支持每塊數(shù)量有限的擦除,因此使用整個存儲設(shè)備對于可靠性非常重要。

文件系統(tǒng)FatFS和LittleFS的區(qū)別

用法也挺簡單,參看官方例程:

#include "LittleFileSystem2.h"#include "SPIFBlockDevice.h"
// Physical block device, can be any device that supports the BlockDevice APISPIFBlockDevice bd(PTE2, PTE4, PTE1, PTE5);
// Storage for the littlefsLittleFileSystem2 fs("fs");
// Entry pointint main() {    // Mount the filesystem    int err = fs.mount(&bd);    if (err) {        // Reformat if we can't mount the filesystem,        // this should only happen on the first boot        LittleFileSystem2::format(&bd);        fs.mount(&bd);    }
    // Read the boot count    uint32_t boot_count = 0;    FILE *f = fopen("/fs/boot_count", "r+");    if (!f) {        // Create the file if it doesn't exist        f = fopen("/fs/boot_count", "w+");    }    fread(&boot_count, sizeof(boot_count), 1, f);
    // Update the boot count    boot_count += 1;    rewind(f);    fwrite(&boot_count, sizeof(boot_count), 1, f);
    // Remember that storage may not be updated until the file    // is closed successfully    fclose(f);
    // Release any resources we were using    fs.unmount();
    // Print the boot count    printf("boot_count: %ld
", boot_count);}

二者對比與區(qū)別

每一種產(chǎn)物都有它存在的價值,文件系統(tǒng)也同樣如此,各有各的優(yōu)缺點,下面簡單羅列幾點它們的區(qū)別。

1.資源RAM / ROM大小

Littlefs是Mbed OS中的高完整性嵌入式文件系統(tǒng),經(jīng)過優(yōu)化可與RAM和ROM有限的MCU一起使用。

文件系統(tǒng)FatFS和LittleFS的區(qū)別

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

2.失電恢復(fù)能力

littlefs具有強(qiáng)大的copy-on-write保證,并且磁盤上的存儲總是保持有效狀態(tài),可能有隨機(jī)電源故障的系統(tǒng)適合該文件系統(tǒng)。

3.磨損均衡

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

原文標(biāo)題:嵌入式文件系統(tǒng)FatFS和LittleFS對比

文章出處:【微信公眾號:strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 模塊
    +關(guān)注

    關(guān)注

    7

    文章

    2726

    瀏覽量

    47614
  • 嵌入式
    +關(guān)注

    關(guān)注

    5087

    文章

    19157

    瀏覽量

    306439
  • 文件系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    287

    瀏覽量

    19931

原文標(biāo)題:嵌入式文件系統(tǒng)FatFS和LittleFS對比

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    STM32CubeMx入門教程(10):Fatfs文件系統(tǒng)的應(yīng)用

    導(dǎo)語"fatfs是一個小型的文件系統(tǒng),在小型的嵌入式系統(tǒng)中使用非常的廣泛,STM32CubeMx自帶該文件系統(tǒng),我們通過簡單的配置就能夠使用,將前面的SD卡的讀寫操作進(jìn)行修改,將
    發(fā)表于 07-12 11:39 ?5586次閱讀
    STM32CubeMx入門教程(10):<b class='flag-5'>Fatfs</b><b class='flag-5'>文件系統(tǒng)</b>的應(yīng)用

    fatFs/LittleFs/RelianceEdge Fs/LwExt4嵌入式文件系統(tǒng)寫入速度對比哪個快?

    fatFs/LittleFs/RelianceEdge Fs/LwExt4嵌入式文件系統(tǒng)寫入速度對比哪個快?
    發(fā)表于 12-27 06:37

    FatFs文件系統(tǒng)使用

    STM系列FatFs文件系統(tǒng)使用文件,希望對大家有幫助。
    發(fā)表于 11-06 18:10 ?8次下載

    基于SD卡的FATFS文件系統(tǒng)的研究與應(yīng)用_崔鵬偉

    基于SD卡的FATFS文件系統(tǒng)的研究與應(yīng)用_崔鵬偉。
    發(fā)表于 04-14 16:46 ?40次下載

    SPI FLASH LittleFS文件系統(tǒng)例程資料免費(fèi)下載

    SPI FLASH LittleFS文件系統(tǒng)例程,基于STM32F103+STM32Cube開發(fā)的詳細(xì)資料免費(fèi)下載。
    發(fā)表于 02-18 08:00 ?36次下載
    SPI FLASH <b class='flag-5'>LittleFS</b><b class='flag-5'>文件系統(tǒng)</b>例程資料免費(fèi)下載

    Fatfs文件系統(tǒng)的移植)

    Fatfs文件系統(tǒng)的移植)一、文件系統(tǒng)介紹二、移植條件、說明1、FatFs模塊在可移植性方面設(shè)定了以下條件:2、數(shù)據(jù)類型說明3、系統(tǒng)框架三
    發(fā)表于 11-15 18:51 ?22次下載
    <b class='flag-5'>Fatfs</b>(<b class='flag-5'>文件系統(tǒng)</b>的移植)

    FATFS文件系統(tǒng)詳解

    采用的獨特的文件系統(tǒng)結(jié)構(gòu)CDFS:CDFS是大部分的光盤的文件系統(tǒng)exFATFATFS文件系統(tǒng)FATFS是一個完全免費(fèi)開源的FAT 文件系統(tǒng)
    發(fā)表于 11-29 09:51 ?29次下載
    <b class='flag-5'>FATFS</b><b class='flag-5'>文件系統(tǒng)</b>詳解

    文件系統(tǒng)FatFs文件系統(tǒng)在嵌入式芯片LPC18XX上的移植

    文件系統(tǒng)FatFs文件系統(tǒng)在嵌入式芯片LPC18XX上的移植
    發(fā)表于 12-04 10:51 ?12次下載
    【<b class='flag-5'>文件系統(tǒng)</b>】<b class='flag-5'>FatFs</b><b class='flag-5'>文件系統(tǒng)</b>在嵌入式芯片LPC18XX上的移植

    Esp8266閃存文件系統(tǒng)LIttleFS

    Esp8266閃存文件系統(tǒng)LIttleFS
    發(fā)表于 12-06 17:21 ?17次下載
    Esp8266閃存<b class='flag-5'>文件系統(tǒng)</b><b class='flag-5'>LIttleFS</b>

    FATFS文件系統(tǒng)原版文件下載

    FATFS文件系統(tǒng)原版文件下載
    發(fā)表于 06-25 09:02 ?0次下載

    基于OpenHarmony3.1的LittleFS文件系統(tǒng)hdf驅(qū)動實現(xiàn)

    ?? ? LittleFS是一個小型的Flash文件系統(tǒng),它結(jié)合日志結(jié)構(gòu)(log-structured)文件系統(tǒng)和COW(copy-on-write)文件系統(tǒng)的思想,以日志結(jié)構(gòu)存儲元
    的頭像 發(fā)表于 09-30 18:32 ?1692次閱讀

    基于OpenHarmony3.1的LittleFS文件系統(tǒng)hdf驅(qū)動實現(xiàn)

    一、簡介LittleFS是一個小型的Flash文件系統(tǒng),它結(jié)合日志結(jié)構(gòu)(log-structured)文件系統(tǒng)和COW(copy-on-write)文件系統(tǒng)的思想,以日志結(jié)構(gòu)存儲元數(shù)據(jù)
    的頭像 發(fā)表于 06-22 09:42 ?1049次閱讀
    基于OpenHarmony3.1的<b class='flag-5'>LittleFS</b><b class='flag-5'>文件系統(tǒng)</b>hdf驅(qū)動實現(xiàn)

    【嵌入式SD NAND】基于FATFS/Littlefs文件系統(tǒng)的日志框架實現(xiàn)

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

    【嵌入式SD NAND】基于FATFS/Littlefs文件系統(tǒng)的日志框架實現(xiàn)

    文章目錄【嵌入式】基于FATFS/Littlefs文件系統(tǒng)的日志框架實現(xiàn)1.概述2.設(shè)計概要3.設(shè)計實現(xiàn)3.1初始化`init`3.2日志寫入`write`3.3日志讀取`read`3.4注銷
    的頭像 發(fā)表于 03-14 18:12 ?1192次閱讀
    【嵌入式SD NAND】基于<b class='flag-5'>FATFS</b>/<b class='flag-5'>Littlefs</b><b class='flag-5'>文件系統(tǒng)</b>的日志框架實現(xiàn)

    小型文件系統(tǒng)如何選擇?FatFsLittleFs優(yōu)缺點比較

    和刪除文件,實現(xiàn)了數(shù)據(jù)的持久化存儲和分層次的目錄結(jié)構(gòu)。文件系統(tǒng)的存在極大地簡化了數(shù)據(jù)管理任務(wù),提升了系統(tǒng)整體的穩(wěn)定性和便利性,對于系統(tǒng)配置、數(shù)據(jù)記錄、固件升級等多種應(yīng)用場景來說至關(guān)重要
    的頭像 發(fā)表于 09-29 16:14 ?1978次閱讀
    小型<b class='flag-5'>文件系統(tǒng)</b>如何選擇?<b class='flag-5'>FatFs</b>和<b class='flag-5'>LittleFs</b>優(yōu)缺點比較