Uboot之一 ~~~ 板級的移植

剛開始做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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章