FL2440开发板的U-boot-2010.09版本移植(十)支持烧写YAFFS2文件系统

时间:2023-01-16 17:13:37

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

第一个参数为被转换的目录,第二个参数为最终输出的镜像文件。