YAFFS和YAFFS2是由AlephOne公司开发的NAND Flash文件系统。YAFFS和YAFFS2主要差异在于PAGE读写size的大小,YAFFS2可支持到2Kper page,远高于YAFFS的512 Bytes,因此YAFFS2对于大容量NANDflash来说更具优势。
就u-boot来说,主要是能够使它支持下载YAFFS文件,以供操作系统使用,因此只要能够实现YAFFS的写入功能即可,无需实现读取功能。
u-boot-2011.06是支持写入YAFFS文件的,但默认情况下,该功能没有开启。要想开启该功能,就必须在include/configs/zhaocj2440.h文件内定义CONFIG_CMD_NAND_YAFFS宏,即:
#define CONFIG_CMD_NAND_YAFFS
至于到底是YAFFS,还是YAFFS2,u-boot-2011.06会根据NANDFlash页的大小,自动实现。
在定义了CONFIG_CMD_NAND_YAFFS宏以后,u-boot-2011.06会多出一个nand write.yaffs命令,用该命令就可以把YAFFS文件写入到NANDFlash中,它的格式与nand write相似。
在这里,我们再介绍一下如何制作YAFFS2文件。
首先输入下列网址,下载yaffs2-source.tar:
http://fatplus.googlecode.com/files/yaffs2-source.tar
解压后,进入utils目录,然后执行make命令编译文件。该命令执行完后,会在该目录下生成mkyaffs2image文件,以根用户的身份再把该文件复制到/usr/bin目录下,并改变它的属性,具体操作如下:
$ su
# cp mkyaffs2image /usr/bin/
# chmod 777 /usr/bin/mkyaffs2image
回到普通用户下,检查mkyaffs2image是否安装成功:
$ mkyaffs2image
mkyaffs2image: image building tool for YAFFS2 built Jul 18 2012
usage: mkyaffs2image dir image_file [convert]
dir thedirectory tree to be converted
image_file the output file to hold theimage
'convert' produce a big-endianimage from a little-endian machine
表明安装成功,其中第二行显示了该命令的用法:
mkyaffs2image dir image_file
第一个参数为被转换的目录,第二个参数为最终输出的镜像文件。