玩转pandaboard之u-boot的编译及代码结构

本文介绍了如何在Pandaboard上编译u-boot,包括其在Android系统中的整合,以及u-boot的代码结构。通过make omap4_panda_config初始化配置,并使用特定版本的CodeSourcery工具链进行编译。u-boot的代码结构包括多个子目录,如arch、board、drivers等,用于不同功能。SPL部分取代了x-loader作为第二阶段的引导加载器。文章还探讨了配置文件、编译参数以及u-boot与Pandaboard硬件的关联。
摘要由CSDN通过智能技术生成

本文以linaro提供的针对pandaboard的u-boot为例(之后用来加载Android),阐述u-boot编译及代码结构。 

  1. U-boot是神马
    简单说来就是嵌入式设备的BIOS, 用来初始化嵌入式设备上的各种硬件资源,并引导linux kernel的加载及启动。
    详细描述请从http://www.denx.de/wiki/U-Boot上获得你所想要的一切信息。
    另外, http://www.ibm.com/developerworks/cn/linux/l-btloader/也是一篇不可多得的介绍bootloader的文章!

  2. pandaboard u-boot的编译
    相关代码如何下载,请参照《玩转pandaboard之初体验
    • 首先通过device/linaro/pandaboard/目录下的各个mk文件把u-boot及对应kernel的编译融入到Android的整个编译体系当中。
      这里就不多说了,熟悉Android编译体系结构的同学一看就明白(或者找到相应的变量, 在build/目录下grep,就一定能找到你想要的结果)
    • 与u-boot编译相关的参数都在BoardConfig.mk中指定了, 从中可以看出, TI已经基本放弃了x-load, 转而使用u-boot自带的SPL来作为second stage的bootloader
      (第一是, ROM boot, 第三则是u-boot自身)
      UBOOT_CONFIG := omap4_panda_config
      TARGET_USE_XLOADER := false
      XLOADER_CONFIG := omap4430panda_config
    • 首先,使用make omap_panda_config来初始化u-boot的config环境
      这里需要注意从Makefile中可以看出, make指令会去解析你所输入的xxxxx_config的参数, 然后找到对应的board的相关配置信息.
      比如,这里会调用mkconfig, 读取boards.cfg中的信息, 来确定相关的信息(ARCH, CPU, SoC, Vendor, Target)

    • 然后调用, make CROOSS_COMPILE=xxxxx来编译u-boot,
      请注意,这里目前使用的最新的Codesourcery的CodeBench, 会有编译错误, 从网上的资料来说是因为它使用了gcc4.6.1, 其中有bug(会导致编译oma4的clock.c出错)
      ,我又先后尝试了几个之前的版本, 发现arm-2011.03-41-arm-none-linux-gnueabi.bin这个版本的最近的能够编译成功的版本.

  3. pandaboard u-boot的代码结构
    1. 目录结构
      /arch                   Architecture 相关的文件
        /arm                  ARM architecture相关的文件
          /cpu                CPU 相关
          /include         
            /armv7          Files specific to ARM v7 CPUs
              /omap4       omap4相关的一些相关的文件
              *.c
              ...
          /lib                ARM Architecture相关的库文件
      /api  
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值