• IMX6ULL移植篇-uboot源码主要文件说明


    一.  uboot 源码分析前提

    由于 uboot 会使用到一些经过编译才会生成的文件,因此,我们在分析 uboot的时候,需要先编译一下 uboot 源码工程。

    这里所用的开发板是 nand-flash 版本。

    本文学习续上一篇文章,如下:

    IMX6ULL移植篇-uboot源码主要目录说明_凌肖战的博客-CSDN博客

    二.  uboot 源码主要文件说明

    1.  .config 文件

    当我们执行make xxx_defconfig以后就会生成 .config文件,此文件保存了详细的 uboot 配置信息。

    可以看出 .config 文件中都是以 CONFIG_ 开始的配置项,这些配置项就是 Makefile 中的
    变量,因此后面都跟有相应的值, uboot 的顶层 Makefile 或子 Makefile 会调用这些变量值。
    .config文件 中会有大量的变量值为‘y ’,这些为‘y ’的变量一般用于控制某项功能是否使能,为
    y ’的话就表示功能使能。

    2. .u-boot.xxx_cmd 文件

    u-boot.xxx_cmd 是一系列的文件,这些文件都是编译生成的,都是一些命令文件。

    都是一些命令文件,比如文件 .u-boot.bin.cmd ,看名字应该是和 u-boot.bin 有关的。

    例如,.u-boot.bin.cmd文件内容如下:
    cmd_u-boot.bin := cp u-boot-nodtb.bin u-boot.bin
    .u-boot.bin.cmd 里面定义了一个变量: cmd_u-boot.bin ,其值为“ cp u-boot-nodtb.bin u-boot.bin ”,即 重命名为 u-boot.bin 。也就是说 u-boot.bin 来源于文件 u-boot-nodtb.bin

    文 件 .u-boot-nodtb.bin.cmd 就 是 用 于 生 成 uboot.nodtb.bin 。而 .u-boot-nodtb.bin.cmd文件内如下:
    cmd_u-boot-nodtb.bin := arm-linux-gnueabihf-objcopy --gap-fill=0xff  -j .text -j .secure_text -j .rodata -j .hash -j .data -j .got -j .got.plt -j .u_boot_list -j .rel.dyn -O binary  u-boot u-boot-nodtb.bin
    
    这里用到了 arm-linux-gnueabihf-objcopy ,使用 objcopy ELF 格式的 u-boot 文件转换为二
    进制的 u-boot-nodtb.bin 文件。 以此类推。

    3.  Makefile 文件

    uboot 源码根目录下的 Makefile 是顶层 Makefile。 Makefile 是支持嵌套的,也就是顶层 Makefile 可以调用子目录 中的 Makefile 文件。如下就是 顶层 Makefile 文件:

    4.  顶层 README 文件 

    顶层README,非常重要。建议大家阅读!!!

    README 文件描述了 uboot 的详细信息,包括 uboot 该如何编译、uboot 中各文件夹的含义、相应的命令等等。建议大家详细的阅读此文件,可以进一步增加对 uboot 的认识。

    5. u-boot.xxx 文件

    u-boot.xxx 同样也是一系列文件,是 uboot 编译后生成的一系列文件。
    这些文件的含义如下:
    u-boot :编译出来的 ELF 格式的 uboot 镜像文件。
    u-boot.bin :编译出来的二进制格式的 uboot 可执行镜像文件,即编译出来带ELF信息的 uboot可执行文件。
    u-boot.cfg uboot 的另外一种配置文件。
    u-boot.imx u-boot.bin 添加头部信息以后的文件, NXP CPU 专用文件。
    u-boot.lds :链接脚本。
    u-boot.map uboot 映射文件,通过查看此文件可以知道某个函数被链接到了哪个地址上。
    u-boot.srec S-Record 格式的镜像文件。
    u-boot.sym uboot 符号文件。
    u-boot-nodtb.bin :和 u-boot.bin 一样, u-boot.bin 就是 u-boot-nodtb.bin 的复制文件。

    6.  System.map 文件

    System.map 文件是内存映射表。编译 uboot后生成的文件。

    7.  Kconfig 文件

    Kconfig 文件 与图形界面有关的。uboot可以通过图形界面来配置。

    8.  imx6ull_alientek_nand.sh

    imx6ull_alientek_nand.sh文件,是之前我们编译 uboot 时,我们自己自定义创建的配置脚本文件。作用就是配置并编译 uboot 源码。

  • 相关阅读:
    SpringCloud复习:(1)netflix包里的DiscoveryClient类
    【Java Spring】Spring MVC基础
    软件设计不是CRUD(7):低耦合模块设计实战——组织机构模块(中)
    Leetcode 数据库中等题(day 1)
    程序执行的四个阶段
    Vue输入框卡死
    Ubantu18.04系统安装Hexagon SDK教程
    Flink 源码解读系列 DataStream 时间服务管理器 TimeServiceManager 设计与实现
    react 组件进阶
    JUC第十二讲:JUC锁: 锁核心类AQS详解
  • 原文地址:https://blog.csdn.net/wojiaxiaohuang2014/article/details/132722135