在MCU上运行的文件系统不多,绝大部分人应该知道FatFS这个文件系统,今天就给大家讲讲FatFS和LittleFS的内容,以及他们之间的一些差异。
文件系统FatFS
FatFs是一个通用的文件系统(FAT/exFAT)模块,用于在小型嵌入式系统中实现FAT文件系统。FatFs组件的编写遵循ANSI C(C89),完全分离于磁盘 I/O 层,因此不依赖于硬件平台。它可以嵌入到资源有限的微控制器中,如 8051, PIC, AVR, ARM, Z80, RX等等,不需要做任何修改。
---来自百度百科
特征
a.DOS/ Windows兼容的FAT/exFAT文件系统。
b.平台无关,容易移植。
c.程序代码和工作区的占用空间非常小。
d.支持以下各种配置选项:
- ANSI / OEM或Unicode中的长文件名。
- exFAT文件系统,64位LBA和GPT可存储大量数据。
- RTOS的线程安全。
- 多个卷(物理驱动器和分区)。
- 可变扇区大小。
- 多个代码页,包括DBCS。
- 只读,可选API,I / O缓冲区等...


文件系统Littlefs
知道Littlefs文件系统的人相对比较少,但是如果使用过Mbed OS系统的人绝大部分都应该知道。Mbed OS是Arm公司针对Cortex-M系列处理器,面向IoT开发的一套免费、开源开源嵌入式操作系统,专门为物联网中的“things”而设计。

而Littlefs只是Mbed其中的一部分内容,如下框图:

Littlefs特点:
-
断电恢复能力:要求文件系统保持一致,并将数据刷新到底层存储。
-
平均磨损:通常情况下,存储支持每块数量有限的擦除,因此使用整个存储设备对于可靠性非常重要。

用法也挺简单,参看官方例程:
// 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 filesystemint err = fs.mount(&bd);if (err) {// Reformat if we can't mount the filesystem,// this should only happen on the first bootLittleFileSystem2::format(&bd);fs.mount(&bd);}// Read the boot countuint32_t boot_count = 0;FILE *f = fopen("/fs/boot_count", "r+");if (!f) {// Create the file if it doesn't existf = fopen("/fs/boot_count", "w+");}fread(&boot_count, sizeof(boot_count), 1, f);// Update the boot countboot_count += 1;rewind(f);fwrite(&boot_count, sizeof(boot_count), 1, f);// Remember that storage may not be updated until the file// is closed successfullyfclose(f);// Release any resources we were usingfs.unmount();// Print the boot countprintf("boot_count: %ld ", boot_count);}
二者对比与区别
每一种产物都有它存在的价值,文件系统也同样如此,各有各的优缺点,下面简单罗列几点它们的区别。1.资源RAM / ROM大小
Littlefs是Mbed OS中的高完整性嵌入式文件系统,经过优化可与RAM和ROM有限的MCU一起使用。

Littlefs高度集成的嵌入式文件系统使用比FAT少的13K ROM和少于4K的RAM。
2.失电恢复能力
littlefs具有强大的copy-on-write保证,并且磁盘上的存储总是保持有效状态,可能有随机电源故障的系统适合该文件系统。
3.磨损均衡
嵌入式设备使用的大多数存储芯片都支持每个扇区有限的擦除集,如果没有均衡,则嵌入式设备的寿命可能会受到影响。
原文标题:嵌入式文件系统FatFS和LittleFS对比文章出处:【微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。
-
模块
+关注
关注
7文章
2822浏览量
52791 -
嵌入式
+关注
关注
5186文章
20143浏览量
328674 -
文件系统
+关注
关注
0文章
301浏览量
20808
原文标题:嵌入式文件系统FatFS和LittleFS对比
文章出处:【微信号:strongerHuang,微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
STM32CubeMx入门教程(10):Fatfs文件系统的应用
fatFs/LittleFs/RelianceEdge Fs/LwExt4嵌入式文件系统写入速度对比哪个快?
SPI FLASH LittleFS文件系统例程资料免费下载
Fatfs(文件系统的移植)
FATFS文件系统详解
基于OpenHarmony3.1的LittleFS文件系统hdf驱动实现
基于OpenHarmony3.1的LittleFS文件系统hdf驱动实现
【嵌入式SD NAND】基于FATFS/Littlefs文件系统的日志框架实现
【嵌入式SD NAND】基于FATFS/Littlefs文件系统的日志框架实现
小型文件系统如何选择?FatFs和LittleFs优缺点比较

文件系统FatFS和LittleFS的区别
评论