Chinaunix首页 | 论坛 | 博客
  • 博客访问: 182867
  • 博文数量: 41
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 600
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-23 21:42
文章分类

全部博文(41)

文章存档

2008年(41)

我的朋友

分类:

2008-08-02 09:36:17

移植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/

全文引自:

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

chinaunix网友2008-11-29 15:55:44

很受启发,我现在也在移植vivi。也遇到类似问题