文档详情

yaffs2文件系统实现原理分析_带书签.pdf

发布:2020-09-21约3.29万字共18页下载文档
文本预览下载声明
1 概述 YAFFS (Yet Another Flash File System )文件系统是专门针对 NAND flash 设计的嵌入式 文件系统,目前有 YAFFS 和 YAFFS2 两个版本,两个版本的主要区别之一在于 YAFFS2 能 够更好的支持大容量的 NAND flash 芯片。 YAFFS 文件系统有些类似于 JFFS/JFFS2 文件系 统,与之不同的是 JFFS/JFFS2 文件系统最初是针对 NOR flash 的应用场合设计的,而 NOR flash 和 NAND flash 本质上有较大的区别,尽管 JFFS/JFFS2 文件系统也能应用于 NAND flash ,但由于它在内存占用和启动时间方面针对 NOR 的特性做了一些取舍,所以 YAFFS2 对 NAND flash 来说通常才是最优的选择方案。 2 相关概念 分析 YAFFS2 之前,把 NAND flash 相关概念介绍下: NAND flash 由块 (block) 组成,块 又由页 (page)构成,擦除时以块为单位, 读写时以页为单位, 页又包含数据区和空闲区 (OOB, Out-Of-Band) ,而 Page 在 YAFFS2 中被称为 Chunk ,其中的数据区用来存放实际的数据, OOB 用来存放附加信息实现 NAND flash 的管理。以 T8000 AXMPFUA 单板使用的 NAND flash 为例,每块 Block: 128 pages ,每页 Page: (8K + 448) bytes ,数据区为 8K ,OOB 为 448bytes , 如图 1 所示: Block : 128 pages Page : (8K+448 )bytes Plane :4096blocks 图 1 NAND flash 物理结构 3 数据结构 struct yaffs_dev 是 YAFFS2 文件系统最核心的数据结构,表示 YAFFS2 文件系统的超级 块,它建立了整个文件系统的层次结构,并衔接 VFS 层和 MTD 层,与 struct super_block 、 struct mtd_info 的关系如图 2 所示: struct VFS 层 super_block …… s_fs_info …… YAFFS2 层 struct yaffs_dev …… driver_context
显示全部
相似文档