Chinaunix首页 | 论坛 | 博客
  • 博客访问: 289642
  • 博文数量: 59
  • 博客积分: 2021
  • 博客等级: 大尉
  • 技术积分: 491
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-29 09:49
文章分类

全部博文(59)

文章存档

2011年(6)

2010年(11)

2009年(42)

我的朋友

分类: LINUX

2009-06-04 21:40:53

通过修改u-boot-1.1.4中的部分程序可以顺利生成u-boot.bin,但是由于uboot的源码是不支持NAND flash启动的,由于实验室的板子上没有Nor Flash所以必须修改uboot的部分源码使得uboot支持从NAND Flash启动。
   有两种方法可以使uboot支持从NAND flash启动,一种是自己修改源码,一种是给官方的uboot的打补丁。
打补丁的方法比较简单,这里先介绍下如何使用打补丁的方法移植uboot,对于修改源码的方法到目前为止还没调试通过。
1.找到一个正确的补丁是至关重要的,我这里有一个针对u-boot-1.1.4的补丁。
2.假设补丁文件放置在/home目录下,进入u-boot-1.1.4的目录,然后使用如下命令打补丁:
      patch -Np1 -i /home/u-boot-1.1.4-nandboot.patch
3.打好补丁后即可构建属于自己的u-boot,这里我们给其取名为lining2410。首先修改u-boot-1.1.4目录下的Makefile文件。在其中添加如下内容:
     lining2410_config : unconfig
           @./mkconfig $(@:_config=) arm arm920t lining2410 NULL s3c24x0
    其中lining2410_config : unconfig的意意思是为lining2410开发板建立一个编译项;第二行中arm的意思是CPU的架构师基于ARM体系的;arm920t的意思是CPU的类型是arm920t;lining2410的意思是开发板的型号;NULL的意思是开发者的名称为空;s3c24x0的意思是基于s3c24x0的片上系统。
4.建立lining2410开发板目录
    在board下建立lining2410开发板子目录,由于lining2410的开发板最接近smdk2410的开发板,所以可以用下面的命令建立lining2410开发板的目录,在/u-boot-1.1.4/board目录下使用如下命令:
    cp -fr ./smdk2410 ./lining2410
    cd lining2410
    mv smdk2410.c lining2410.c
   同时需要修改/board/lining2410目录下的Makefile文件,修改内容如下:
   将OBJS    := smdk410.o flash.o nand_read.o修改成
     OBJS    := lining2410.o flash.o nand_read.o
5.在/u-boot-1.1.4/include/configs目录下建立lining2410.h头文件,进入/u-boot-1.1.4/include/configs目录后命令行如下:
    cp -fr smdk2410.h lining2410.h
6.在lining2410.h  文件中修改 #define CFG_PROMPT "lining2410 #" 
7.到此即可进行编译。编译命令如下:
     make distclean
     make lining2410_config
     make all ARCH=ARM CROSS_COMPILE=arm-linux-
8.将生成的u-boot.bin通过Jtag烧写到开发板上即可。u-boot.bin文件
 
阅读(1388) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~