嵌入式Linux内核本身并不支持YAFFS文件系统。要实现Linux内核支持YAFFS文件系统有两种方法:一种是直接把YAFFS编译到内核,另一种是将YAFFS编译成单独的模块加载。下面介绍将YAFFS直接编译到内核的方法。
首先需要将YAFFS源代码复制到内核fs目录下,进行必要的配置后,重新编译得到一个能够支持YAFFS文件系统的Linux内核。YAFFS源代码可以从http:/www.aleph1.co.uk/cgi-bin/viewcvs.cgi/yaffs/上免费下载。YAFFS代码主要包括yaffs_ecc.c、yaffs_fileem.c、yaffs_fs.c、yaffs_guts.c、yaffs_mtdif.c和yaffs_ramem.c。各文件的主要功能如下。
yaffs_ecc.c:ECC校验算法。
yaffs_fileem.c:实现NANDFlash文件层仿真。
yaffs_fs.c:YAFFS与虚拟文件系统接口。
yaffs_guts.c:YAFFS文件系统主要算法。
yaffs_mtdif.c:NANDMTD封装函数。
yaffs_ramem.c:NANDFlash的RAM块仿真实现。
实现支持YAFFS文件系统的Linux内核的具体步骤如下:
1)在内核源代码fs目录下建立YAFFS目录,并把下载的YAFFS代码复制到该目录下面。
2)修改fs/config.in,添加配置YAFFS文件系统选项。
(www.xing528.com)
3)修改fs/Makefile,添加如下内容。
4)在fs/yaffs/目录下生成Makefile和Kconfig文件。Makefile的内容为:
Kconfig文件是YAFFS文件系统的详细配置文件,其内容可参考下载的源代码中的/Linux-kernel/fs/yaffs/Kconfig文件。YAFFS文件系统主要配置选项说明见表7-5。
表7-5 YAFFS文件系统主要配置选项说明
5)修改内核源代码中关于NAND的分区设置。
NAND闪存支持两种分区格式:一种是MTD分区格式,另一种是BON分区格式。MTD技术实现对内存设备支持的统一接口,提供FLASH设备到字符设备和块设备的驱动转换,包含对各种不同类型NOR、NANDFLASH等的支持。通常多采用MTD分区格式。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。