EDA365电子论坛网
标题:
littlefs文件系统掉电保护是如何实现的?
[打印本页]
作者:
Roof0102
时间:
2022-9-15 16:23
标题:
littlefs文件系统掉电保护是如何实现的?
文档: 在 STM32L4 上应用 littlefs 文件系统
% L" A& K: y% s+ b
2 y. `6 s6 |6 \9 i4 p' `% C0 }
文档上说little fs支持 擦写均衡 和 掉电保护;
3 a Q v! b/ a4 c a& m
擦写均衡可以理解,通过打包几条写入,由写入几次变一次,从而增大flash寿命;
$ ?3 ?+ G) r, e* c
这样要写入的数据临时保存在ram中,掉电不就没了,这个掉电保护是如果实现的,是用电池供电的ram吗
' E7 @2 g6 s+ D1 Q/ v e
作者:
理论的
时间:
2022-9-15 16:49
以FAT文件系统为例,当文件创建并写入数据后,这个数据就在固定的位置了。
# W/ U" R( a; S! n
7 i2 s8 J3 O. A0 h
然后我们对文件中数据修改10000次,但没有增大文件体积。这个固定位置就被写入了10000次。
& K1 s* b' m6 a* C5 g; H: _
而带有擦写均衡特性的文件系统,即使你修改文件原有数据,而不改变文件大小,他也可能每次写入在新的位置上。
; H6 z% h. C( u5 h+ T* q
1 i/ Z& q" P. R5 T" c4 E0 ?
基于上面的原理,当你新的数据写入1半掉电了,此时你的原有数据没有任何损失,那么再次上电能看到你写入前的状态,这就是掉电保护。而如果你用FAT,那再启动整个文件系统可能崩溃,特别是写关键数据时。
* d' U+ R* _) t# h! V/ M" r" |6 o
当然FAT有也有一点点考虑,如双FAT表,但反正效果一般。
# G u3 B5 H% F* _5 q2 H
h0 Q8 K; d4 U4 S' S5 N
以上仅是简单的原理说明,实际的实现中要复杂得多。
* {. }1 S8 I# [# {
当然,即使有这些特性,你依然可以在硬件上增加RAM缓冲和额外的电池。
4 {1 g* |$ X. c: u
作者:
opipo
时间:
2022-9-15 17:33
Flash有多个可用的扇区,但平时我们读写参数总是蹂躏某些特定的区域,久而久之这块区域就容易损坏。擦写均衡呢就要雨露均沾,所有扇区挨个用,这样就变相的延长flash寿命了。
6 C- A& n! `& }% A9 t {
掉电保护
4 F1 A! E! p4 l) O
这个和ram无关,写flash的时候要先擦除才能写入,如果刚擦除就掉电了这时候不光是新数据没了,就连原来的数据也损坏了。引入掉电保护可以让flash的数据恢复到上一次完好的状态。
' }6 ~& K# ~8 Q) p7 \
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2