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
第一个参数为被转换的目录,第二个参数为最终输出的镜像文件。