移植vivi成功
今天将vivi移植到了开发版里.vivi的版本为1.4.现在讲一下具体修改的过程.首先是下载vivi源代码,解压缩.然后是修改makefile,具体是:
修改为“LINUX-INCLUDE-DIR = /usr/local/arm/2.95.3/include”,就是自己的编译器路径.
修改为“CROSS-COMPILE = /usr/local/arm/2.95.3/bin/arm-linux-”
修改为"ARM_GCC_LIBS = /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3"
在
这里我遇到一个问题,我用3.3.2和3.4.1的编译器编译vivi会报很多错误,比如什么:invalid option
"no-fpu"之类的,但是用2.95.3就没问题,一路绿灯。不知道是只有我一个人有这个问题还是大家都有,总之网上没有人提到这个问题。就是这个小
问题卡了我将尽两天,浪费了大量的精力,真是受不了。
然后是修改arch/s3c2410/smdk2410.c
修改为
#ifdef CONFIG_S3C2410_NAND_BOOT
mtd_partition_t default_mtd_partitions[] = {
{
name:
"vivi",
offset: 0,
size:
0x00030000,
flag:
0
}, {
name:
"param",
offset:
0x00030000,
size:
0x00150000,
flag:
0
}, {
name:
"kernel",
offset:
0x00180000,
size:
0x00180000,
flag:
0
}, {
name:
"root",
offset:
0x00300000,
size:
0x01e00000,
flag:
0
//flag:
MF_BONFS
}, {
name:
"user",
offset:
0x02100000,
size:
0x01f00000,
flag:
0
}
};
#endif
修改cmd_line,因为我是用linux2.6的内核,还想使用ramdisk,所以设置为:
“char linux_cmd[] = "initrd root=/dev/mtdblock/3 init=/linuxrc console=ttySAC0,115200 mem=64M";”
然后make menuconfig,主要是去掉ecc。其他的设置就不细说了。
最后,make vivi 就可以的到一个名为vivi的文件,烧到nandflash里就ok了
4月22日
再谈修改vivi
前几天将vivi在开发板上成功的跑了起来,于是转去做porting
2.6kernel+yaffs2的工作去了,等完成之后需要将kernel烧到nandflash里的时候出问题了.它说什么invalid mtd
info.就是在使用vivi的load命令的时候出现的问题.用param
save也会出现问题.总之就是不能往flash里写东西.看了一下vivi的启动信息,并且和网上其它人的启动信息比较了一下,发现在memory
mapping的时候都是正常的,但是我的启动信息里没有nandflash的id,厂商等信息.于是在windows下用sourceinsight这
个软件将vivi添加到一个工程里,查看main.c(里面可以看出了vivi的启动过程),发现对mtd的初始化等依赖于smc功能,然而我在编译的时
候是把smc掉的.重新编译vivi,make
menuconfig,选中smc支持.编译,出错,说什么在mtd.o里什么mtd_nand_ecc没有定义之类的,抱着瞎试的态度,把smc支持下
的关于ecc的项选中,编译通过.然后烧到板子上,启动,果然出现了nandflash的厂商信息,load命令也可以正常使用了.这些步骤看着听少的,
可是我自己做耗费的时间是以天来记的.真希望有个高手能在旁边指导一下,这样至少能省3/4的时间.其实对vivi的这一点我是感到很奇怪的,既然这两个
项你不放在一起选就会编译报错,那你为什么不把后一个设置为和前一个绑定.
学习嵌入式我才上路呢:
http://whatnetmarc.spaces.live.com/blog/
全文引自:
阅读(1538) | 评论(1) | 转发(0) |