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主阵地,欢迎关注公众号,不迷路~

及时获得最新物联网应用技术沉淀发布

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5186

    文章

    20169

    浏览量

    329106
  • FATFS
    +关注

    关注

    0

    文章

    44

    浏览量

    19393
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    明晚8点|睿擎文件系统实战:从开发到发布全流程解析

    文件操作到镜像发布,一次直播掌握完整开发流程!在嵌入式系统开发中,文件系统是数据存储、配置管理和资源访问的核心基础。然而在实际开发中,文件操作效率低下、镜像打包流程复杂、
    的头像 发表于 11-11 11:53 399次阅读
    明晚8点|睿擎<b class='flag-5'>文件系统</b>实战:从开发到发布全流程解析

    睿擎派文件系统指南:从开发到发布全流程实践 | 技术解析

    在嵌入式系统开发中,文件系统扮演着至关重要的角色,它负责数据的持久化存储、配置文件管理和资源访问等核心功能。睿擎平台提供了一套完整的文件系统解决方案,从开发阶段的API调用到调试阶段的
    的头像 发表于 11-05 18:13 7721次阅读
    睿擎派<b class='flag-5'>文件系统</b>指南:从开发到发布全流程实践 | 技术解析

    使用littlefs存储ulog日志,然后读日志文件会出错,为什么?

    使用littlefs存储ulog日志,然后通过命令读取日志文件,或者通过API接口读取或拷贝日志文件,都会导致线程卡死,尝试了多种方法都不行,有没有大佬有遇到或者处理过类似问题? 改成fatf
    发表于 09-29 06:14

    rtt 5.1.0使用最新版的littleFS异常的原因?

    项目中使用文件系统(存储介质是spi nor flash),测试发现正在写文件掉电会导致文件系统破坏,于是将elm(fatfs)换成littleFS
    发表于 09-10 06:43

    Linux三大主流文件系统解析

    还在为选择哪个文件系统而纠结?作为一名摸爬滚打多年的运维老鸟,我将用最接地气的方式,带你彻底搞懂 Linux 三大主流文件系统的奥秘。
    的头像 发表于 08-05 17:37 1072次阅读

    服务器数据恢复—ocfs2文件系统被格式化为Ext4文件系统的数据恢复案例

    服务器存储数据恢复环境&故障: 人为误操作将Ext4文件系统误装入一台服务器存储上的Ocfs2文件系统数据卷上,导致原Ocfs2文件系统被格式化为Ext4文件系统
    的头像 发表于 06-10 12:03 564次阅读
    服务器数据恢复—ocfs2<b class='flag-5'>文件系统</b>被格式化为Ext4<b class='flag-5'>文件系统</b>的数据恢复案例

    PCBA 表面处理:优缺点大揭秘,应用场景全解析

    一站式PCBA加工厂家今天为大家讲讲PCBA加工如何选择合适的表面处理工艺?PCBA表面处理优缺点与应用场景。在电子制造中,PCBA板的表面处理工艺对电路板的性能、可靠性和成本都有重要影响。选择合适
    的头像 发表于 05-05 09:39 1147次阅读
    PCBA 表面处理:<b class='flag-5'>优缺点</b>大揭秘,应用场景全解析

    如何正确选择嵌入式文件系统

    操作系统,由于有文件系统以及缓存的存在,在数据存储方面的使用注意事项比单片机直接写存储器的应用会有更多的要求才能达到数据的稳定可靠。如下都是比较常见的异常:系统没有正常
    的头像 发表于 03-17 11:35 872次阅读
    如何正确<b class='flag-5'>选择</b>嵌入式<b class='flag-5'>文件系统</b>?

    通过FATFS文件系统读写SD卡创建文件可以了,加入MSC一直显示一个没有格式化的U盘盘符,也不能格式化,为什么?

    通过FATFS文件系统读写SD卡创建文件可以了,但加入MSC,一直显示一个没有格式化的U盘盘符,也不能格式化,这是什么问题导致的
    发表于 03-12 07:20

    NFS网络文件系统深度解析

    NFS:Network File System 网络文件系统,基于内核的文件系统。Sun 公司开发,通过使用 NFS,用户和程序可以像访问本地文件一样访问远端系统上的
    的头像 发表于 03-01 14:15 1182次阅读

    香港主机托管和国内主机的优缺点比较

    香港主机托管和国内主机(以大陆主机为例)的优缺点比较,主机推荐小编为您整理发布香港主机托管和国内主机的优缺点比较,希望对您有帮助。
    的头像 发表于 02-05 17:42 691次阅读

    【S32K146 RT-thread】基于内部PFLASH的littlefs适配

    LittleFS是一个应用于单片机内部flash和外挂NORflash的文件系统。由于它相比传统的FAT文件系统更适合于小型嵌入式系统,具有
    的头像 发表于 01-14 18:32 2382次阅读
    【S32K146 RT-thread】基于内部PFLASH的<b class='flag-5'>littlefs</b>适配

    防止根文件系统破坏,OverlayRootfs 让你的设备更安全

    OverlayRootfs介绍OverlayRootfs是指利用OverlayFS技术创建的根文件系统(rootfilesystem)。OverlayFS是一种联合文件系统(UnionFS),允许将
    的头像 发表于 01-08 16:33 2470次阅读
    防止根<b class='flag-5'>文件系统</b>破坏,OverlayRootfs 让你的设备更安全

    SMD与DIP元件的优缺点比较 SMD元件在LED灯具中的应用

    SMD与DIP元件的优缺点比较 SMD元件的优缺点 优点 : 体积小巧 :SMD(Surface Mount Device)元件的体积通常很小,这使得它们能够在有限的空间内安装更多的元件,从而
    的头像 发表于 12-13 09:38 1948次阅读

    Ubuntu系统优缺点分析 Ubuntu系统与Windows的比较

    Ubuntu是一个基于Linux的开源操作系统,它以其稳定性、安全性和社区支持而闻名。以下是对Ubuntu系统优缺点的分析,以及与Windows系统
    的头像 发表于 12-12 14:31 5453次阅读