找回密码
 注册
关于网站域名变更的通知
查看: 263|回复: 2
打印 上一主题 下一主题

littlefs文件系统掉电保护是如何实现的?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-9-15 16:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
文档: 在 STM32L4 上应用 littlefs 文件系统% F" r* z+ U/ U/ T" |

7 V+ A) L( Z9 S文档上说little fs支持 擦写均衡 和 掉电保护;
9 x, t. l0 s/ G擦写均衡可以理解,通过打包几条写入,由写入几次变一次,从而增大flash寿命;
1 W6 P& I# S* v, n% i* c$ \这样要写入的数据临时保存在ram中,掉电不就没了,这个掉电保护是如果实现的,是用电池供电的ram吗
! I5 x0 D9 W. \, X$ H/ l/ |3 G

该用户从未签到

2#
发表于 2022-9-15 16:49 | 只看该作者
以FAT文件系统为例,当文件创建并写入数据后,这个数据就在固定的位置了。$ C" c& J3 I9 h8 n0 R  p9 Q7 A

4 ]4 x; x- ^4 E0 G; @然后我们对文件中数据修改10000次,但没有增大文件体积。这个固定位置就被写入了10000次。
2 C% p* s- x, \# K+ D, ^4 L而带有擦写均衡特性的文件系统,即使你修改文件原有数据,而不改变文件大小,他也可能每次写入在新的位置上。
2 ^7 W3 q$ S- K" M" M( D- A) H7 [
4 p7 t$ H4 x) q2 M基于上面的原理,当你新的数据写入1半掉电了,此时你的原有数据没有任何损失,那么再次上电能看到你写入前的状态,这就是掉电保护。而如果你用FAT,那再启动整个文件系统可能崩溃,特别是写关键数据时。
, ], ]2 c0 g" b! l2 j) F当然FAT有也有一点点考虑,如双FAT表,但反正效果一般。) G( I( \' X4 o0 |. L$ x6 ^
( l/ Z: f- O6 I% Q/ b( S5 D# [
以上仅是简单的原理说明,实际的实现中要复杂得多。% a6 i. t6 [8 O8 s3 g0 `
当然,即使有这些特性,你依然可以在硬件上增加RAM缓冲和额外的电池。
8 z+ G! M/ [! s3 h4 J8 P$ Z

该用户从未签到

3#
发表于 2022-9-15 17:33 | 只看该作者
Flash有多个可用的扇区,但平时我们读写参数总是蹂躏某些特定的区域,久而久之这块区域就容易损坏。擦写均衡呢就要雨露均沾,所有扇区挨个用,这样就变相的延长flash寿命了。
* j0 m, K4 b- {掉电保护
/ e: ]6 @$ j! F$ Y1 [' f" w. U+ a这个和ram无关,写flash的时候要先擦除才能写入,如果刚擦除就掉电了这时候不光是新数据没了,就连原来的数据也损坏了。引入掉电保护可以让flash的数据恢复到上一次完好的状态。) X# j/ a8 F2 f9 [3 \
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-9-8 14:34 , Processed in 0.125000 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表