@[TOC]
移植环境
主 机: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-Bo...
始终往下拉抉择如下
将下载好的压缩包解压到任意文件夹,并创立source insight工程。将下载好的u-boot-2012.04.01.tar_2.bz2放到ubuntu服务器/work/system中。执行以下命令解压uboot:
cd /work/systemtar xjf u-boot-2012.04.01.tar_2.bz2
进入文件夹配置uboot
cd u-boot-2012.04.01make smdk2410_configmake
编译报错如下
产生了段谬误,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/toolsmkdir tmptar 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/binls
配置环境变量
将新的工具链解压到根目录并配置环境变量,新的穿插编译工具链就失效了。
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.01make distcleanmake smdk2410_configmake
编译没有报错,将新的uboot.bin烧写到开发板发现,程序不能运行。所以须要剖析并批改uboot
下一节S3C2440移植uboot之启动过程概述咱们将剖析UBOOT的整个启动流程。
如遇到排版错乱的问题,能够通过以下链接拜访我的CSDN。
**CSDN:[CSDN搜寻“嵌入式与Linux那些事”]