爱妃科技第五章.Das U-Boot | | 爱妃科技
正在加载
请稍等

菜单

红楼飞雪 梦

15526773247

文章

Home android 嵌入式开发 第五章.Das U-Boot
Home android 嵌入式开发 第五章.Das U-Boot

第五章.Das U-Boot

android 嵌入式开发, linux开发学习 by

 

1、当前版本

Das U-Boot(或者也可简称为U-boot)是一个开源的Power Architecture®, ARM, MIPS, x86等处理器做嵌入式开发的固件。U-boot是由DENX负责的,你可以在他们的网站上发现U-boot的主页。 http://www.denx.de/wiki/U-Boot/

当前最新的U-boot版本可以从 DENX 的git库中获取。你可以浏览他的git库: http://git.denx.de/

U-boot的目录树可以通过git, HTTP, rsync协议来获取,你可以用如下命令之一来创建一个本地副本:

git clone git://git.denx.de/u-boot.git u-boot/
git clone http://git.denx.de/u-boot.git u-boot/
git clone rsync://git.denx.de/u-boot.git u-boot/

如果你想要获取更加详细的信息,你可以访问:这里

官方版本的U-boot也可以通过ftp获取,你可以从 ftp://ftp.denx.de/pub/u-boot/来获取格式为tar的压缩文件。

2、解压源代码

如果你是用git来获取的,那末你可以跳过这一步,因为你此时已经有U-boot的目录树了。如果你是从DENX官网获取的U-boot压缩包,你可以按如下方式来解压包:

$ cd /opt/eldk/usr/src
$ wget ftp://ftp.denx.de/pub/u-boot/u-boot-1.3.2.tar.bz2
$ rm -f u-boot
$ bunzip2 < u-boot-1.3.2.tar.bz2 | tar xf -
$ ln -s u-boot-1.3.2 u-boot
$ cd u-boot

3.配置

在进入U-boot的源代码目录以后,首先,清除以前可能的编译结果和配置选项,执行如下命令:

$ make distclean

你可以通过如下命令来为canyonlands 的开发板配置U-boot:

$make canyonlands_config

最后,我们来编译U-boot和它所提供的一些工具:

$make all

默认情况下,整个项目的构建是在本地执行的,编译后生成的对象也是在源文件里的。有两种种方式可以将U-boot编译到其他目录:

  1. 加 O= 字段到 make 命令后面调用
    make O=/tmp/build distclean
    make O=/tmp/build canyonlands_config
    make O=/tmp/build all
    

注意:如果 “O=output/dir” 字段被使用,那末在所有的makefile文件中他都是有效的

  1. 在环境变量 BUILD_DIR 里面配置目标路径
    export BUILD_DIR=/tmp/build
    make distclean
    make canyonlands_config
    make all
    

注意:命令行里面的 “O=” 字段将会覆盖环境变量的配置

4、安装

4.1、在开始之前

4.1.1 安装要求

下面的部分假设你的开发板的固件存储设备是flash存储器。如果没有这个前提,接下来的介绍可能不会在你的板子上跑起来。你可能不得不更换一些系统的存储设备去安装和跟新U-boot。

4.1.2 识别开发板

为了便于识别,所有的canyonlands 开发板都有特定的序列号。同样,这些开发板都至少有一个网口被分配。如果你丢失了这个数据,那么你的板子将不再被保修。在安装U-boot或者改变的开发板的软件配置之前,你应该确定,你已经有了一些必须的信息。

4.2、使用BDM和JTAGS调试安装

一个写数据到flash存储器的快速简单的方法就是通过一个flash编程器和一个调试器, 调用BDMJTAG接口。在没有任何可运行的固件的情况下,这是唯一一个安装软件的方式。再次,我们强烈建议使用 Abatron的 BDI2000/BDI3000,

关于BDI2000/BDI3000的使用文档,译者已经在网上找了一份中文的,读者可以在以下地址下载:https://github.com/Pengfei-Gao/The_DENX_U-Boot_chinese_Manual

至于其他的BDMJTAG调试器也可以工作,但是如何使用它们已经超出了本文档范围,你可以去查看你想要使用的官方文档。 在使用BDI2000 之前,你首先要配置它。在这里,有一个canyonlands开发板的配置文件示例,你可以直接使用它(译者:该配置文件将在第13章详细介绍,由于此时我还没有翻译到13章,所以在此处先给出原文地址供读者参考:原文地址)。 你可以接下来所示的流程来将一个新的u-boot镜像安装到你的canyonlands 开发板上。

4.3、安装使用U-boot

如果你的开发板上已经有一个U-boot被安装,你可以按如下所示的方法重新安装一个新的U-boot来替换它。

注意:在你安装一个新的U-boot镜像的时候,你必须要将原来的镜像擦除,如果出现任何意外都将会导致你的板子彻底死掉,在这里,我们要特别强调以下几点:

  • 你必须有一个以前的U-boot镜像的备份,
  • 你知道如何在你的裸板上安装U-boot

流程如下:

=> setenv u-boot /tftpboot/duts/canyonlands/u-boot.bin
=> run load update
Using ppc_4xx_eth0 device
TFTP from server 192.168.1.1; our IP address is 192.168.100.6
Filename '/tftpboot/duts/canyonlands/u-boot.bin'.
Load address: 0x200000
Loading: ###########################
done
Bytes transferred = 393216 (60000 hex)
Un-Protected 3 sectors

... done
Erased 3 sectors
Copy to Flash... done
Saving Environment to Flash...
Un-Protected 1 sectors
Un-Protected 1 sectors
Erasing Flash...
. done
Erased 1 sectors
Writing to Flash... done
Protected 1 sectors
Protected 1 sectors
=> reset


U-Boot 2009.11.1 (Feb 05 2010 - 08:57:12)

CPU:   AMCC PowerPC 460EX Rev. B at 1066.667 MHz (PLB=266 OPB=88 EBC=88)
       Security/Kasumi support
       Bootstrap Option H - Boot ROM Location I2C (Addr 0x52)
       Internal PCI arbiter enabled
       32 kB I-Cache 32 kB D-Cache
Board: Canyonlands - AMCC PPC460EX Evaluation Board, 1*PCIe/1*SATA, Rev. 16
I2C:   ready
DRAM:  512 MB (ECC not enabled, 533 MHz, CL4)
FLASH: 64 MB
NAND:  128 MiB
PCI:   Bus Dev VenId DevId Class Int
PCIE1: link is not up.
DTT:   1 is 32 C
Net:   ppc_4xx_eth0, ppc_4xx_eth1

Type run flash_nfs to mount root filesystem over NFS

Hit any key to stop autoboot:  0
=> version

U-Boot 2009.11.1 (Feb 05 2010 - 08:57:12)
=>

5、工具安装

U-Boot使用一种特殊的镜像格式来加载Linux内核或ramdisk或其他其他镜像,这个镜像包含了其他的一些信息,比如:创建时间,操作系统,压缩类型,镜像类型,镜像名称,以及CRC32 的校验码。 mkimage 工具被用来创建一些镜像或者查看这些镜像里面包含哪些信息,在使用ELDK的时候,这个工具已经被包含在ELDK的库里了,你可以直接在终端调用它。如果你没有使用ELDK,那么你应该把它安装到目录里面,并且将该目录加到环境变量里面,例如:

$ cp tools/mkimage /usr/local/bin/

mkimage 工具有数十个不同分布,例如:在ubuntu里面,他的包名为 u-boot-tools,你可以在终端执行如下命令来安装它:

$ sudo apt-get install u-boot-tools

在Fedora里面,你可以执行如下命令来安装它:

$ sudo yum install uboot-tools

 

 

07 2016-07

 

我要 分享

 

 

本文 作者

 

相关 文章