目录

  1. api 与硬件无关的 API 函数。
  2. arch 与架构体系有关的代码。
    1.  各种架构,例如arm
      1. cpu  各种版本的cpu, 例如armv7, arm9
      2. 各种厂商,例如瑞芯微mach-rockchip
  3. board 不同板子(开发板)的定制代码。
    1.    例如raspberrypi/rpi_2 或者 freescale/mx6ul_14x14_evk
  4. cmd 命令相关代码
  5. common 通用代码。
  6. configs 配置文件。
    1. 各种板子的各种配置的配置文件,例如512M + EMMC的  mx6ull_14x14_ddr512_emmc_defconfig
    2. 编译前需要 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_ddr512_emmc_defconfig
    3. 清除编译是 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
    4. 编译 是 make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4
  7. disk 磁盘分区相关代码
  8. doc 文档。 
  9. drivers 驱动代码。
  10. dts 设备树。 
  11. examples 示例代码。
  12. fs 文件系统。
  13. include 头文件。
  14. lib 库文件。
  15. Licenses 许可证相关文件。
  16. net 网络相关代码。
  17. post 上电自检程序。 
  18. scripts 脚本文件。 
  19. test 测试代码。
  20. tools 工具文件夹。

文件

  1. .gitignore git 工具相关文件。 
  2. .mailmap 邮件列表。
  3. config.mk 某个 Makefile 会调用此文件。
  4. Kbuild 用于生成一些和汇编有关的文件。
  5. Kconfig 图形配置界面描述文件。
  6. MAINTAINERS 维护者联系方式文件。
  7. MAKEALL 一个 shell 脚本文件,帮助编译uboot 的。
  8. Makefile 主 Makefile,重要文件! 
  9. README 相当于帮助文档。
 
生成的文件
  1. .config 配置文件,重要的文件。
    1. uboot 配置文件,使用命令“make xxx_defconfig”配置 uboot 以后就会自动生成
    2. 如果 配置文件中有类似 CONFIG_CMD_BOOTD=y,那么Makefile

      obj-$(CONFIG_CMD_BOOTM) += bootm.o
      obj-y += bootm.o
      obj-y 包含着所有要编译的文件对应的.o 文件
  2. .u-boot.xxx.cmd 这是一系列的文件,用于保存着一些命令。
    1. .u-boot.xxx_cmd 的
        cmd_u-boot.bin := cp u-boot-nodtb.bin u-boot.bin
    2. .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

    3. .u-boot.cmd的

      cmd_u-boot := arm-linux-gnueabihf-ld.bfd -pie --gc-sections -Bstatic -Ttext 0x87800000 -o u-boot -T u-boot.lds

      arch/arm/cpu/armv7/start.o

      --start-group
      arch/arm/cpu/built-in.o
      arch/arm/cpu/armv7/built-in.o
      arch/arm/imx-common/built-in.o
      arch/arm/lib/built-in.o
      board/freescale/common/built-in.o
      board/freescale/mx6ull_alientek_emmc/built-in.o
      cmd/built-in.o
      common/built-in.o
      disk/built-in.o
      drivers/built-in.o
      drivers/dma/built-in.o
      drivers/gpio/built-in.o
      drivers/i2c/built-in.o
      drivers/mmc/built-in.o
      drivers/mtd/built-in.o
      drivers/mtd/onenand/built-in.o
      drivers/mtd/spi/built-in.o
      drivers/net/built-in.o
      drivers/net/phy/built-in.o
      drivers/pci/built-in.o
      drivers/power/built-in.o
      drivers/power/battery/built-in.o
      drivers/power/fuel_gauge/built-in.o
      drivers/power/mfd/built-in.o
      drivers/power/pmic/built-in.o
      drivers/power/regulator/built-in.o
      drivers/serial/built-in.o
      drivers/spi/built-in.o
      drivers/usb/dwc3/built-in.o
      drivers/usb/emul/built-in.o
      drivers/usb/eth/built-in.o
      drivers/usb/gadget/built-in.o
      drivers/usb/gadget/udc/built-in.o
      drivers/usb/host/built-in.o
      drivers/usb/musb-new/built-in.o
      drivers/usb/musb/built-in.o
      drivers/usb/phy/built-in.o
      drivers/usb/ulpi/built-in.o
      fs/built-in.o
      lib/built-in.o
      net/built-in.o
      test/built-in.o
      test/dm/built-in.o
      --end-group

      arch/arm/lib/eabi_compat.o

      -L /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4
      -lgcc -Map u-boot.map

    4. .u-boot.imx.cmd
      cmd_u-boot.imx := ./tools/mkimage -n
      board/freescale/mx6ull_alientek_emmc/imximage.cfg.cfgtmp -T imximage
      -e 0x87800000 -d u-boot.bin u-boot.imx
  3. System.map 系统映射文件
  4. u-boot 编译出来的 u-boot 文件。
  5. u-boot.xxx 生成的一些 u-boot 相关文件,包括u-boot.bin、u-boot.imx.等
    1. u-boot:编译出来的 ELF 格式的 uboot 镜像文件。
    2. u-boot.bin:编译出来的二进制格式的 uboot 可执行镜像文件。
    3. u-boot.cfg:uboot 的另外一种配置文件。
    4. u-boot.imx:u-boot.bin 添加头部信息以后的文件,NXP 的 CPU 专用文件。
    5. u-boot.lds:链接脚本。
    6. u-boot.map:uboot 映射文件,通过查看此文件可以知道某个函数被链接到了哪个地址上。
    7. u-boot.srec:S-Record 格式的镜像文件。
    8. u-boot.sym:uboot 符号文件。
    9. u-boot-nodtb.bin:和 u-boot.bin 一样,u-boot.bin 就是 u-boot-nodtb.bin 的复制文件。

uboot目录的更多相关文章

  1. uboot各种目录下的文件作用

    uboot下载地址:http://ftp.denx.de/pub/u-boot/ 1.目录分布 2.目录结构变化: u-boot-2010.03及以前版本├── api                ...

  2. uboot——详解各目录下的文件作用

    uboot下载地址:http://ftp.denx.de/pub/u-boot/ 1.目录分布 2.目录结构变化: u-boot-2010.03及以前版本 ├── api                ...

  3. 第二天-uboot学习

    源码阅读方法1.源码目录结构2.配置(支持当前使用的硬件)3.编译(Makefile)4.启动流程 工具使用1.在同一文件查找 shitf+8 N n进行上下查找 2.在工程目录中 ctags ubo ...

  4. uboot完全手册---14

    1. u-boot介绍 本次移植采用的是U-Boot-1.2.0版本. 3. U-Boot源码分析 3.1 源码入口的解释 可能大多数的同学上网查资料后都了解到,stage1阶段的启动代码,主要就在s ...

  5. 【转】Bootloader之uBoot简介(转)

    原文网址:http://blog.csdn.net/sadamoo/article/details/8139946 来自http://blog.ednchina.com/hhuwxf/1915416/ ...

  6. 嵌入式 hi3518平台uboot引导nfs文件系统

    首先贴出来我的bootargs的设置(注没有换行符!!!): setenv bootargs noinitrd mem=64M root=/dev/nfs init=/linuxrc rw nfsro ...

  7. hisi平台mii网络模式和rmii网络模式的uboot制作

    MII网络uboot编译说明 一:编译生成默认的uboot1. 进入到uboot目录a. cd /home/satan/Hi3518_SDK_V1.0.7.0/osdrv/uboot2. 新建临时文件 ...

  8. 在Linux里读取UBOOT环境变量

    转载:http://falloutmx.blog.163.com/blog/static/39236020201211145010154/ 可以通过mtd方式读取,也可以用ioremap方式.不过这些 ...

  9. UBOOT的多支持性与可裁剪性

    UBOOT功能强大,适用于多种操作系统,多种处理器架构. 在阅读它的源码时,可以看到cpu目录有各种处理器,而board目录有各种开发板.但是,对于一个特定的实验平台,例如TQ2440开发板,它用到的 ...

  10. Jlink 烧写Uboot

    第一章 Hi3531_SDK_Vx.x.x.x版本升级操作说明 如果您是首次安装本SDK,请直接参看第2章. 第二章首次安装SDK 1.Hi3531 SDK包位置 在"Hi3531_V100 ...

随机推荐

  1. 【Java并发004】原理层面:synchronized关键字全解析

    一.前言 synchronized关键字在需要原子性.可见性和有序性这三种特性的时候都可以作为其中一种解决方案,看起来是"万能"的.的确,大部分并发控制操作都能使用synchron ...

  2. 线程(Thread)基本用法

    一.线程的调用 1.无参 def run_01(): for i in range(6, 10): print("test01", i) time.sleep(1) th_01 = ...

  3. winform的TabContorl的TabPage动态添加滚动条

    关键属性 AutoScrollMinSize  private int minWidth = 800; private int minHeight = 600; List<Form> li ...

  4. MySQL进阶实战5,为什么查询速度会慢

    一.先了解一下MySQL查询的执行过程 MySQL在查询时,它是由很多子任务组成的,每个子任务都会消耗一定的时间,如果要想优化查询,实际上要优化其子任务,可以消除一些子任务.减少子任务的执行次数.让子 ...

  5. 【小项目】微信定时推送天气预报Github项目使用及原理介绍-包含cron、天气预报、常用api

    一.资料链接 1.github地址 https://github.com/qq1534774766/wx-push 2.教程地址 https://blog.csdn.net/qq15347747/ar ...

  6. 【Java SE进阶】Day13 Stream流、方法引用

    〇.总结 Stream流的方法:forEach.filter.map.count.limit.skip.concat(结合之前的Collectors接口) 方法引用:Lambda的其他类方法体相同,如 ...

  7. PostgreSQL和MySQL的优劣对比

    在开发项目的过程中,难免要面对选择数据库的情况.总结此文章是因为在之前公司里使用的都是MYSQL 数据库,而在现在公司里,新项目中使用的是 PostgreSQL 数据库,在使用过程中,经常需要查找两种 ...

  8. hdoj笔记1000

    1000,A+B problem #include <stdio.h>//要用EOF!! int main() { int a,b; while(scanf("%d%d" ...

  9. 一篇文章教你实战Docker容器数据卷

    在上一篇中,咱们对Docker中的容器数据卷做了介绍.已经知道了容器数据卷是什么?能干什么用.那么本篇咱们就来实战容器数据卷,Docker容器数据卷案例主要做以下三个案例 1:宿主机(也就是Docke ...

  10. Karmada多云多集群生产实践专场圆满落幕

    摘要:CNCF Karmada社区Cloud Native Days China 2022南京站成功举办. 本文分享自华为云社区<Karmada多云多集群生产实践专场圆满落幕|Cloud Nat ...