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处理器相关文件- 其它文件夹
cpu
、dts
、lib
、include
:是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
命令后生成Makefile
:uboot的顶层makefileconfig.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处理器)