美文网首页
U-boot开发学习笔记

U-boot开发学习笔记

作者: NooneIam | 来源:发表于2017-10-29 15:22 被阅读0次

    U-Boot 的源码顶层目录说明

    目录 特性 解 释 说 明
    board 平台依赖 存放电路板相关的目录文件,例如:RPXlite(mpc8xx)、smdk2410(arm920t)、sc520_cdp(x86) 等目录
    cpu 平台依赖 存放 CPU 相关的目录文件, 例如: mpc8xx、 ppc4xx、 arm720t、 arm920t、 xscale、i386 等目录
    lib_ppc 平台依赖 存放对 PowerPC 体系结构通用的文件, 主要用于实现 PowerPC 平台通用的函数
    lib_arm 平台依赖 存放对 ARM 体系结构通用的文件,主要用于实现 ARM 平台通用的函数
    lib_i386 平台依赖 存放对 X86 体系结构通用的文件,主要用于实现 X86 平台通用的函数
    include 通用 头文件和开发板配置文件,所有开发板的配置文件都在 configs 目录下
    common 通用 通用的多功能函数实现
    lib_generic 通用 通用库函数的实现
    Net 通用 存放网络的程序
    Fs 通用 存放文件系统的程序
    Post 通用 存放上电自检程序
    drivers 通用 通用的设备驱动程序,主要有以太网接口的驱动
    Disk 通用 硬盘接口程序
    Rtc 通用 RTC 的驱动程序
    Dtt 通用 数字温度测量器或者传感器的驱动
    examples 应用例程 一些独立运行的应用程序的例子,例如 helloworld
    tools 工具 存放制作 S-Record 或者 U-Boot 格式的映像等工具,例如 mkimage Doc 文档 开发使用文档

    嵌入式学院—《嵌入式 Linux 系统开发标准教程》——第 6 章、Bootloader

    U-Boot 的编译

    U-Boot 的源码是通过 GCC 和 Makefile 组织编译的。 顶层目录下的 Makefile 首先可以设置开发板的定义,然后递归地调用各级子目录下的 Makefile,最后把编译过的程序链接成 U-Boot 映像。

    1.顶层目录下的 Makefile

    它负责 U-Boot 整体配置编译。按照配置的顺序阅读其中关键的几行。
    每一种开发板在 Makefile 都需要有板子配置的定义。
    例如 smdk2410 开发板的定义如下

    smdk2410_config :unconfig
    @./mkconfig $(@:_config=) arm arm920t smdk2410 NULL s3c24x0
    

    执行配置 U-Boot 的命令 make smdk2410_config,通过./mkconfig 脚本生成
    include/config.mk 的配置文件。文件内容正是根据 Makefile 对开发板的配置生成的。

    ARCH = arm
    CPU = arm920t
    BOARD = smdk2410
    SOC = s3c24x0
    
    2.开发板配置头文件

    除了编译过程 Makefile 以外,还要在程序中为开发板定义配置选项或者参数。这个头文件是 include/configs/<board_name>.h。 <board_name>用相应的 BOARD 定义代替。
    这个头文件中主要定义了两类变量。
    一类是选项,前缀是 CONFIG_,用来选择处理器、设备接口、命令、属性等。
    例如:

    #define CONFIG_ARM920T       1
    #define CONFIG_DRIVER_CS8900 1
    

    另一类是参数,前缀是 CFG_,用来定义总线频率、串口波特率、Flash 地址等参数。
    例如:

    #define   CFG_FLASH_BASE   0x00000000
    #define   CFG_PROMPT       "=>"
    
    3.编译结果

    根据对 Makefile 的分析,
    编译分为 2 步。
    第 1 步配置,
    例如: make smdk2410_config
    第 2 步编译,执行 make 就可以了。
    编译完成后,可以得到 U-Boot 各种格式的映像文件和符号表

    文 件 名 称 说明
    System.map U-Boot 映像的符号表
    u-boot.bin U-Boot 映像原始的二进制格式
    u-boot U-Boot 映像的 ELF 格式
    u-boot.srec U-Boot 映像的 S-Record 格式

    一般 u-boot.bin 最为常用,直接按照二进制格式下载,并且按照绝对地址烧写到Flash 中就可以了。

    U-Boot移植

    (1)在顶层 Makefile 中为开发板添加新的配置选项
    (2)创建一个新目录存放开发板相关的代码,并且添加文件
    (3)为开发板添加新的配置文件
    (4)配置开发板
    (5)编译 U-Boot
    (6)添加驱动或者功能选项
    (7)调试 U-Boot 源代码,直到 U-Boot 在开发板上能够正常启动

    相关文章

      网友评论

          本文标题:U-boot开发学习笔记

          本文链接:https://www.haomeiwen.com/subject/nzxypxtx.html