博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jffs2和yaffs2文件系统
阅读量:5282 次
发布时间:2019-06-14

本文共 2022 字,大约阅读时间需要 6 分钟。

一,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

你可能感兴趣的文章
python创建进程的两种方式
查看>>
1.2 基础知识——关于猪皮(GP,Generic Practice)
查看>>
迭代器Iterator
查看>>
java易错题----静态方法的调用
查看>>
php建立MySQL数据表
查看>>
最简单的线程同步的例子
查看>>
旅途上看的电影和观后感
查看>>
Ztree异步树加载
查看>>
关于IE和火狐,谷歌,Safari对Html标签Object和Embed的支持问题
查看>>
poj3320 Jessica's Reading Problem(尺取思路+STL)
查看>>
分布式计算开源框架Hadoop介绍
查看>>
安卓平台接口剖析
查看>>
坏的事情不都会带来坏的结果
查看>>
RPC的基础:调研EOS插件http_plugin
查看>>
第二次团队冲刺第二天
查看>>
bzoj 2257 (JSOI 2009) 瓶子与燃料
查看>>
11)Java abstract class 和 interface
查看>>
使用xrdp或Xmanager 远程连接 CentOS6
查看>>
Linux误删恢复
查看>>
Unity调用Windows窗口句柄,选择文件和目录
查看>>