分类: 嵌入式
2010-12-01 01:00:10
Yaffs工具包的使用:
# tar zxvf yaffs.tar.gz
# cd yaffs
# cp –r /home/user_name/linux/linux-
# cd utils
# make
经过以上命令,会产生mkyaffs和mkyaffsimage两个工具。
注意:
若不拷贝2.6内核的include/mtd目录,会提示找不到mtd-user.h文件。
另外拷贝mtd目录时,用
拷贝的mtd目录放在yaffs目录下,即与utils目录是同级目录。这主要是因为utils目录下的Makefile文件设置了头文件路径:-I /usr/include –I ..。
若要编译ARM版本的工具,修改utils/Makefile:
CC = $(MAKETOOLS) gcc 改为 CC = $(MAKETOOLS)arm-linux-gcc
也可以修改MAKETOOLS = arm-linux-
注意2:
产生的mkyaffs工具在实验箱使用时不能正常工作,错误如下所示:
#mkyaffs –e /dev/mtd/1 usr.yaffs
argc 4 sh 0 optcnt 2
MEMSETOOBSEL:Inappropriate ioctl for device
解决这个问题的方法是在mkyaffs.c文件中屏蔽掉下面的内容:
oobsel = usemtdecc ? yaffs_oobinfo : yaffs_noeccinfo;
if (ioctl (fd, MEMSETOOBSEL, &oobsel) != 0) {
perror ("MEMSETOOBSEL");
close (fd);
exit (1);
}