当前位置:首页 > 公众号精选 > strongerHuang
[导读]关注、星标公众号,不错过精彩内容 素材来源:网络 编辑整理:strongerHuang 对于许多物联网设备而言,拥有一个小型且具有弹性的文件系统至关重要。 在MCU上运行的文件系统不多,绝大部分人应该知道FatFS这个文件系统,今天就给大家讲讲FatFS和LittleFS的内容


关注、星标公众,不错过精彩内容

素材来源:网络
编辑整理:strongerHuang


对于许多物联网设备而言,拥有一个小型且具有弹性的文件系统至关重要。


在MCU上运行的文件系统不多,绝大部分人应该知道FatFS这个文件系统,今天就给大家讲讲FatFS和LittleFS的内容,以及他们之间的一些差异。


一、文件系统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.平台无关,容易移植。

c.程序代码和工作区的占用空间非常小。

d.支持以下各种配置选项:

  • ANSI / OEM或Unicode中的长文件名。
  • exFAT文件系统,64位LBA和GPT可存储大量数据。
  • RTOS的线程安全。
  • 多个卷(物理驱动器和分区)。
  • 可变扇区大小。
  • 多个代码页,包括DBCS。
  • 只读,可选API,I / O缓冲区等...


如果你会使用STM32CubeMX,想要使用FatFS非常容易,轻松几步就能将STM32“变成”一个U盘。


二、文件系统Littlefs

知道Littlefs文件系统的人相对比较少,但是如果使用过Mbed OS系统的人绝大部分都应该知道。


Mbed OS是Arm公司针对Cortex-M系列处理器,面向IoT开发的一套免费、开源开源嵌入式操作系统,专门为物联网中的“things”而设计。


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


源码地址:

https://github.com/armmbed/mbed-littlefs


Littlefs特点:

  • 占用资源小:物联网设备受到ROM和RAM的限制。

  • 断电恢复能力:要求文件系统保持一致,并将数据刷新到底层存储。

  • 平均磨损:通常情况下,存储支持每块数量有限的擦除,因此使用整个存储设备对于可靠性非常重要。


用法也挺简单,参看官方例程:

#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\n", boot_count);}


三、文件系统对比

每一种产物都有它存在的价值,文件系统也同样如此,各有各的优缺点,下面简单罗列几点它们的区别。


1.资源RAM / ROM大小

Littlefs是Mbed OS中的高完整性嵌入式文件系统,经过优化可与RAM和ROM有限的MCU一起使用。


Littlefs高度集成的嵌入式文件系统使用比FAT少的13K ROM和少于4K的RAM。


2.失电恢复能力

littlefs具有强大的copy-on-write保证,并且磁盘上的存储总是保持有效状态,可能有随机电源故障的系统适合该文件系统。


3.磨损均衡

嵌入式设备使用的大多数存储芯片都支持每个扇区有限的擦除集,如果没有均衡,则嵌入式设备的寿命可能会受到影响。


参考来源:

https://os.mbed.com/blog/entry/littlefs-high-integrity-embedded-fs/


免责声明:本文来源网络,版权归原作者所有。如涉及作品版权问题,请与我联系删除。

‧  END  
推荐阅读:
精选汇总 | 目录 | 搜索
为什么CPU流水线会提高代码执行效率?
假冒芯片的套路,如何鉴别仿冒料件?

关注 微信公众号『strongerHuang』,后台回复“1024”查看更多内容,回复“加群”按规则加入技术交流群。


长按前往图中包含的公众号关注

免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭