Uboot之一 ~~~ 板级的移植

来源:互联网 发布:flyplayer for mac 编辑:程序博客网 时间:2024/06/06 13:03

刚开始做Uboot的移植,发现移植的任务量也是很大的。所以把每个主要的阶段分成一块,希望自己能坚持着写完。

实验环境:win7 + Ubuntu10.04

交叉编译器:arm-linux-gcc-4.3.2

开发板:TQ2440

 

首先,分析Uboot已经支持的开发板,选择出于硬件配置最接近的开发板。首选MCU(微控制单元,micor control unit,集成了外围器件)相同的开发板,如果没有相同的,则选择MPU(微处理单元,micor processor unit)相同的。

接下来,就是修改Uboot当中与开发板最相近的文件:

1:# cd /u-boot-2010.06

      #vi Makefile

a.添加编译器

# set default to nothing for native builds
ifeq ($(HOSTARCH),$(ARCH))
CROSS_COMPILE = arm-linux-
endif

b.参照已有的:

smdk2410_config : unconfig
         @$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 samsung s3c24x0

修改2440为:

smdk2440_config : unconfig
         @$(MKCONFIG) $(@:_config=) arm arm920t smdk2440 samsung s3c24x0

2:在board目录下创建一个属于新开发板的目录,并修改此目录下的Makefile

    # mkdir  -p /board/smdk2440

    #cp -rf  board/samsung/smdk2410/ board/samsung/smdk2440

    #cd /board/samsung/smdk2440

    #mv smdk2410.c smdk2440.c

    #vi Makefile

#COBJS  := smdk2410.o flash.o    注释掉已有的关于2410的信息

COBJS   := smdk2440.o flash.o
SOBJS   := lowlevel_init.o

3:为开发板添加新的配置文件,先复制,后修改。

    # cd /u-boot-2010.06

    #cp include/configs/smdk2410.h include/configs/smdk2440.h

4:编译自己的板子

    # make smdk2440 _config

    #make

当出现下面的内容时,就是正确了

rch/arm/lib/eabi_compat.o -L /usr/local/arm/4.3.2/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.2/armv4t -lgcc -Map u-boot.map -o u-boot
arm-linux-objcopy -O srec u-boot u-boot.srec
arm-linux-objcopy --gap-fill=0xff -O binary u-boot u-boot.bin