Chinaunix首页 | 论坛 | 博客
  • 博客访问: 362182
  • 博文数量: 36
  • 博客积分: 2071
  • 博客等级: 大尉
  • 技术积分: 797
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-20 12:08
文章分类
文章存档

2011年(2)

2010年(34)

我的朋友

分类: 嵌入式

2010-12-01 01:00:10

Yaffs工具包的使用:

# tar zxvf yaffs.tar.gz

# cd yaffs

# cp –r /home/user_name/linux/linux-2.6.14.1/include/mtd ./

# cd utils

# make

经过以上命令,会产生mkyaffsmkyaffsimage两个工具。

 

注意:

若不拷贝2.6内核的include/mtd目录,会提示找不到mtd-user.h文件。

另外拷贝mtd目录时,用2.6.22.2内核会出错,用2.6.14.1版本的内核编译通过。

拷贝的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

MEMSETOOBSELInappropriate ioctl for device

解决这个问题的方法是在mkyaffs.c文件中屏蔽掉下面的内容:

       oobsel = usemtdecc ? yaffs_oobinfo : yaffs_noeccinfo;

       if (ioctl (fd, MEMSETOOBSEL, &oobsel) != 0) {

              perror ("MEMSETOOBSEL");

              close (fd);

              exit (1);

       }

阅读(1708) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~