乐趣区

关于c:S3C2440移植uboot之编译烧写uboot

@[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/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
下一节 S3C2440 移植 uboot 之启动过程概述咱们将剖析 UBOOT 的整个启动流程。

如遇到排版错乱的问题,能够通过以下链接拜访我的 CSDN。

**CSDN:[CSDN 搜寻“嵌入式与 Linux 那些事”]

退出移动版