天天看點

u-boot-1.3.4移植到mini2440+128M nand boot(1)

第1 階段 下載下傳源碼

<b></b>

    2)、解壓檔案:tar -jxvf u-boot-1.3.4.tar.bz2;

    3)、下載下傳交叉編譯工具 

    4)、建立交叉編譯環境

首先:#tar xvzf arm-linux-gcc-4.3.2.tgz    –C /     

注意:C後面有個空格,并且 C是大寫的,它是英文單詞“Change”的第一個字母,

在此是改變目錄的意思。 

執行該指令,将把 arm-linux-gcc安裝到/usr/loca/arm/4.3.2目錄。

然後:把編譯器路徑加入系統環境變量,運作指令 

#vi /root/.bashrc 

編輯/root/.bashrc檔案,在最後一行  export PATH=$PATH:/usr/local/arm/4.3.2/bin ,儲存退出。

最後:重新登入系統(不必重新開機機器,開始-&gt;logout 即可),使以上設定生效。

第2階段 測試編譯環境是否正确

1)、在u-boot-1.3.4/board下找個與2410相似的開發闆,這裡smdk2410為例。

2)、将u-boot-1.3.4/board/smdk2410目錄複制到目前目錄下,并改名為mini2440。

3)、把smdk2410.c改名為mini2440.c,修改Makefile中的 COBJS := mini2440.o flash.o,儲存。

4)、将u-boot-1.3.4/include/configs/smdk2410.h,複制到目前目錄,并改名為mini2440.h。

6)、在u-boot-1.3.4/Makefile中,大概2490多行找到

smdk2410_config : unconfig

 @$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0

在它下邊添加

mini2440_config : unconfig

 @$(MKCONFIG) $(@:_config=) arm arm920t mini2440 NULL s3c24x0

(注意@$(MKCONFIG)前面必須是TAB鍵)

7)特别注意: 在u-boot1.3.3及以上版本Makefile有一定的變化,使得對于24x0處理器從nand啟動的遇到問題。也就是網上有人說的:無法運作過lowlevel_init。其實這個問題是由于編譯器将我們自己添加的用于nandboot的子函數nand_read_ll放到了4K之後造成的(到這不了解的話,請仔細看看24x0處理器nandboot原理)。u-boot根本沒有完成自我拷貝,你可以看uboot根目錄下的System.map檔案就可知道原因。

解決辦法其實很簡單:

将278行的__LIBS := $(subst $(obj),,$(LIBS)) $(subst $(obj),,$(LIBBOARD))

改為__LIBS := $(subst $(obj),,$(LIBBOARD)) $(subst $(obj),,$(LIBS))

8)、進入u-boot-1.3.4目錄,先來個#make distclean,

然後# make mini2440_config

Configuring for mini2440 board...

9)、之後就可以# make了,如正常編譯通過,表明環境搭建好。

本文轉自 zjb_integrated 51CTO部落格,原文連結:http://blog.51cto.com/zjbintsystem/209987,如需轉載請自行聯系原作者

繼續閱讀