移植環境
主 機:VMWare–ubuntu16.04
開發板:S3C2440
編譯器:arm-linux-gcc-4.3.2.tgz
u-boot:u-boot-2012.04.01.tar.bz2
獲取uboot
進入https://www.denx.de/wiki/U-Boot下載uboot
一直往下拉選擇如下
將下載好的壓縮包解壓到任意文件夾,並創建source insight工程。將下載好的u-boot-2012.04.01.tar_2.bz2放到ubuntu服務器/work/system中。執行以下命令解壓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
編譯報錯如下
發生了段錯誤,arm-linux-ld 工具鏈版本不支持uboot中新的屬性。我們的交叉編譯鏈版本爲3.4.5,因此,需要更換新的交叉編譯鏈支持uboot。
將arm-linux-gcc-4.3.2.tar.bz2上傳到ubuntu服務器/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
將新的工具鏈解壓到根目錄並配置環境變量,新的交叉編譯工具鏈就生效了。
sudo tar xjf arm-linux-gcc-4.3.2.tar.bz2 -C /
爲什麼要設置環境變量?
因爲我們執行ls 命令時,系統會去尋找所執行的命令,去哪裏找呢?就在環境變量中。在ubuntu查看環境變量如下
設置新的環境變量
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
執行
arm-linux-gcc -v
永久修改環境變量需要修改/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燒寫到開發板發現,程序不能運行。所以需要分析並修改uboot
下一節分析並修改ubootS3c2440移植uboot之新建單板_時鐘_SDRAM_串口