jffs2和yaffs2文件系统

一,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比较合适

三,jffs2文件系统镜像制作

1、工具安装
sudo apt-get install mtd-utils

命令:mkfs.jffs2

2、镜像制作
信息收集:
Flash的页大小、擦除块大小

mkfs.jffs2 [options]
主要选项:
-p, --pad[=SIZE] 使用0xff填充文件系统到指定大小,不指定则只填充完最后一个擦除块
-r, -d, --root=DIR 使用指定的目录内容构建文件系统(default: cwd)
-s, --pagesize=SIZE 使用指定的页大小(最大数据节点大小) (default: 4KiB)
-e, --eraseblock=SIZE 指定擦除块的大小 (default: 64KiB)
-c, --cleanmarker=SIZE 擦除标记的大小 (default 12)
-m, --compr-mode=MODE 选择压缩模式(default: priortiry)
-x, --disable-compressor=COMPRESSOR_NAME 禁用指定的压缩算法
-X, --enable-compressor=COMPRESSOR_NAME 启用指定的压缩算法
-y, --compressor-priority=PRIORITY:COMPRESSOR_NAME 设置压缩算法的优先级
-L, --list-compressors 列出可用的压缩算法
-t, --test-compression 测试压缩算法
-n, --no-cleanmarkers 不添加擦除标记到擦除块
-o, --output=FILE 指定文件系统镜像名称(default: stdout)
-l, --little-endian 创建一个小端的文件系统
-b, --big-endian 创建一个大端的文件系统
-q, --squash 压缩权限和设置所有文件的拥有者为root
-U, --squash-uids 设置所有文件的拥有者为root
-P, --squash-perms 压缩所有文件的权限

四,yaffs2文件系统镜像制作

1、获取yaffs2源码
git clone git://www.aleph1.co.uk/yaffs2
从源码中编译制作工具:
cd yaffs2/utils
make


error: unknown type name ‘u8’
error: unknown type name ‘u32’
如果出现以上错误,修改yportenv.h文件,增加:#define CONFIG_YAFFS_DEFINES_TYPES

制作工具:
mkyaffs2image: YAFFS2(2KB/page)
mkyaffsimage: YAFFS(512B/page)

2、镜像制作
mkyaffs2image dir image_file [convert]

以上所有文件系统只能烧录使用,不能在宿主机上进行挂载

原文地址:https://www.cnblogs.com/CHYI1/p/5573957.html