移植環(huán)境
主 機:VMWare--ubuntu16.04
開發(fā)板:S3C2440
編譯器:arm-linux-gcc-4.3.2.tgz
u-boot:u-boot-2012.04.01.tar.bz2
獲取uboot
??進入https://www./wiki/U-Boot下載uboot


??一直往下拉選擇如下

??將下載好的壓縮包解壓到任意文件夾,并創(chuàng)建source insight工程。將下載好的u-boot-2012.04.01.tar_2.bz2放到ubuntu服務(wù)器/work/system中。執(zhí)行以下命令解壓uboot:
cd /work/system
tar xjf u-boot-2012.04.01.tar_2.bz2
進入文件夾配置uboot
cd u-boot-2012.04.01
make smdk2410_config
make
??編譯報錯如下

??發(fā)生了段錯誤,arm-linux-ld 工具鏈版本不支持uboot中新的屬性。我們的交叉編譯鏈版本為3.4.5,因此,需要更換新的交叉編譯鏈支持uboot。
更新交叉編譯工具
??將arm-linux-gcc-4.3.2.tar.bz2上傳到ubuntu服務(wù)器/work/tools。將arm-linux-gcc-4.3.2.tar.bz2解壓到/work/tools/tmp文件夾。
cd /work/tools
mkdir tmp
tar xjf arm-linux-gcc-4.3.2.tar.bz2 -C tmp/
??解壓完成,進入tmp目錄查看usr/local/arm/4.3.2/bin文件夾,有各種工具鏈。
cd tmp/usr/local/arm/4.3.2/bin
ls

配置環(huán)境變量
??將新的工具鏈解壓到根目錄并配置環(huán)境變量,新的交叉編譯工具鏈就生效了。
sudo tar xjf arm-linux-gcc-4.3.2.tar.bz2 -C /
??為什么要設(shè)置環(huán)境變量?
??因為我們執(zhí)行l(wèi)s 命令時,系統(tǒng)會去尋找所執(zhí)行的命令,去哪里找呢?就在環(huán)境變量中。在ubuntu查看環(huán)境變量如下

??設(shè)置新的環(huán)境變量
export PATH=/usr/local/arm/4.3.2/bin:.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
??執(zhí)行
arm-linux-gcc -v

??永久修改環(huán)境變量需要修改/etc/environment
sudo vi /etc/environment
??修改前
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/work/tools/gcc-3.4.5-glibc-2.3.6/bin"
??修改后
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/4.3.2/bin"
??重啟后即可生效。
??再次編譯新的uboot
cd /work/sysytem/u-boot-2012.04.01
make distclean
make smdk2410_config
make
??編譯沒有報錯,將新的uboot.bin燒寫到開發(fā)板發(fā)現(xiàn),程序不能運行。所以需要分析并修改uboot
下一節(jié)S3C2440移植uboot之啟動過程概述我們將分析UBOOT的整個啟動流程。
|