uboot研读笔记 | 12 - uboot目录结构分析(2016.03版本)

Posted Mculover666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uboot研读笔记 | 12 - uboot目录结构分析(2016.03版本)相关的知识,希望对你有一定的参考价值。

整个目录结构分析的思维导图:【腾讯文档】uboot 2016.03目录结构分析

背景说明

我使用的是已经移植到atk-imx6ull开发板上的uboot,基于NXP原厂提供的uboot,版本为2016.03。

uboot未编译的时候,长这样:

编译完成之后,长这样:

一、uboot文件夹目录分析

1. api

mach/arch中给外部app调用的独立的API(与硬件无关)。

2.arch

CPU相关的架构代码。

其中arm架构下的内容:

  • mach-开头:某个具体的ARM处理器相关文件
  • 其它文件夹cpudtslibinclude:是ARM架构处理器通用文件
  • imx-common:本文使用的是NXP提供的uboot,所以该文件夹是NXP添加到imx处理器相关文件

cpu文件夹的内容是某个具体的ARM内核架构,内容如下:

Cortex-A7系列属于ARM v7架构,查看其内容:

这里面就是ARM v7架构底层的一些代码了。

整理arch目录的思维导图如下:

3. board

不同开发板的代码,移植uboot的时候新建开发板bsp也是在这里对应的芯片厂商下面新建


NXP前身是freescale:

其中mx6ullevk是官方板,mx6ullatk是我移植的正点原子开发板。

board目录的思维导图如下:

4. cmd

u-boot命令的实现文件。

5. common

uboot中通用的一些功能实现。

6. configs

存放不同开发板的uboot配置文件,命名规则统一为xxx_defconfig,xxx表示为开发板名称。

移植的时候,通常在官方EVK开发板的配置文件基础上,复制一份自己开发板的,修改即可。

7. disk

8. doc

uboot的一些帮助文档。

9. drivers

u-boot的设备驱动源码,支持非常丰富。

10. dts

存放不同开发板的设备树源码文件,目前该目录为空。

11. examples

u-boot示例代码。

12. fs

uboot支持的文件系统。

13. net

uboot网络相关功能实现。

14. 其它文件夹

  • License:uboot使用的开源许可协议
  • include和lib:uboot需要的头文件和库文件
  • post:上电自检程序
  • scripts:常用的一些脚本
  • test:测试文件夹
  • tools:常用的一些工具

二、uboot文件分析

1. 编译使用的文件

  • .config文件:配置make xxx_defconfig命令后生成
  • Makefileuboot的顶层makefile
  • config.mk:某个Makefile会调用此配置文件

2. 编译出的文件

  • u-boot:编译出的ELF格式的uboot镜像文件
  • u-boot.bin:编译出来的二进制格式的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-nodtb.bin的复制文件

以上是关于uboot研读笔记 | 12 - uboot目录结构分析(2016.03版本)的主要内容,如果未能解决你的问题,请参考以下文章

uboot研读笔记 | 01 - 下载uboot源码并使用VSCode远程查看源码编译uboot(2012.04.01版本)

uboot研读笔记 | 03 - 初步移植uboot 2012.04到JZ2440(修改时钟,配置串口)

uboot研读笔记 | 04 - 移植uboot 2012.04到JZ2440(支持Nor Flash读写)

uboot研读笔记 | 02 - 详细探索uboot启动过程(基于S3C2410处理器)

uboot研读笔记 | 13 - uboot编译构建Makefile分析研读(2016.03版本)

uboot研读笔记 | 00 - 嵌入式Linux系统中Bootloader的作用和基本运行原理