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

第1 階段 下載源碼

    1) U-boot ×××地址: ftp://ftp.denx.de/pub/u-boot/ 裏邊的 u-boot-1.3.4.tar.bz2 文件,放到你的開發目錄裏;
    2)
、解壓文件: tar -jxvf u-boot-1.3.4.tar.bz2
    3)
、下載交叉編譯工具
http://www.handhelds.org/download/projects/toolchain/
,使用 3.3.2 ,若是使用 3.4.1 的編譯 u-boot 會產生軟件浮點的編譯錯誤,建議使用 3.3.2 u-boot ,用 3.4.1 編譯內核。固然你也可使用友善之臂 http://www.arm9.net/download-arm-linux-gcc-4.3.2.asp arm-linux-gcc-4.3.2.tgz ,這個 arm-linux-gcc-4.3.2 with EABI 至關不錯,能夠編譯全部的程序;本人就是使用 4.3.2
    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 ,保存退出。
最後:從新登陸系統 ( 沒必要重啓機器,開始 ->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 了,如正常編譯經過,代表環境搭建好。
 
相關文章
相關標籤/搜索