Lession 13 Flash文件系统:jffs/jffs2和yaffs/yaffs2

Lession 13 Flash文件系统:jffs/jffs2和yaffs/yaffs2

在嵌入式系统中进行数据读写时,为了保证可靠性,我们可以选择哪些合适的文件系统?

一、Flash闪存类型
非易失存储器,可以对称为块的存储器单元块进行擦写和再编程
任何flash器件的写入操作只能在空或已擦除的单元内进行,在进行写入操作之前必须先执行擦除

1. NOR Flash: 非易失内存
	应用:代码存储介质
	特点:
		芯片内执行(XIP, eXecute In Place)
		低容量高成本: 1 - 16MB(常见)
		读写速度:读取速度快,写入速度慢
		块最大擦写次数:10W

2. NAND Flash:类似硬盘的块设备
	应用:数据存储介质
	特点:
	 极高的单元密度
	  读写速度:写入和擦除的速度很快
	  高容量低成本:16 - 1024MB(常见)
	  块最大擦写次数:100W

二、JFFS2
JFFS:1999
Journalling Flash File System, Version 2:2001-9-23,Linux 2.4.10
主要用于NOR Flash,可用于NAND Flash

1. 特性:
	掉电保护与损耗平衡
	垃圾回收机制
	CRC循环冗余校验机制
	挂载时间与内存消耗跟文件系统的大小成正比:文件系统越大,越慢,消耗越多 ————> 很差的扩展性
		挂载需要进行全盘扫描,挂载一个 16M 的闪存有时需要半分钟以上的时间
		在实际应用中,JFFS2 最大能用在 128M 的闪存上

三、YAFFS2
YAFFS:2002
Yet Another Flash File System, Version 2:2003
只能用于NAND Flash, YAFFS1支持512Bytes/Page的NAND Flash;YAFFS2支持2kBytes/Page的NAND Flash.

1.特性:
	储存资料的基本单位是Chunk:Page
	支持YAFFS/Direct使用:可以不需要VFS,甚至操作系统支持
	ECC冗余校验机制
		纠正单比特错误和检测双比特错误,而且计算速度很快,但对1比特以上的错误无法纠正,对2比特以上的错误不保证能检测。
	更快的挂载速度,更少的内存使用
		512B/page ————> 4KB RAM/1MB NAND
		2KB/Page  ————> 1KB RAM/1MB NAND

总结:
JFFS与YAFFS都是日志结构文件系统(LFS),保障了数据的可靠性与安全性,可以恢复数据。
一般来说,对于小于64MB的NAND Flash,可以选用JFFS2;如果超过64MB,用YAFFS2比较合适

猜你喜欢

转载自blog.csdn.net/qq_40083589/article/details/82948511