uboot目录结构

1.在学习uboot之前,我们需要知道到底什么是uboot?

  Universal Boot Loader,普遍的引导程序。是非常常用的一个引导程序,可作为主流系统的引导程序,如OpenBSD, NetBSD, FreeBSD,4.4BSD, Linux, SVR4, Esix, Solaris等等,当然同时也支持多种常见的cpu处理器,如MIPS、 x86、ARM、NIOS、XScale等。
  u-boot是一种普遍用于嵌入式系统中的Bootloader,Bootloader是在操作系统运行之前执行的一小段程序,通过它,我们可以初始化硬件设备、建立内存空间的映射表,从而建立适当的软硬件环境,为最终调用操作系统内核做好准备。BootLoader的作用就是把内核映像从硬盘(例如Nand Flash)读到RAM中,然后跳到内核入口处执行,即启动操作系统。每次嵌入式系统在上电或者复位的时候都是从地址0x00000000处执行,这个地址处安排的就是BootLoader程序。

 

2.uboot的目录结构

  接下来介绍的是u-boot-2010.06往后版本的目录结构。u-boot目录结构,相比老版本,新版本

  1. cpu与lib_arch合二为一,命名arch
  2. 增加include folder
  3. 分离出通用库文件夹lib

 u-boot-2010.06往后版本的各目录结构含义如下表:

目录名 主要内容
api uboot中的接口函数
arch uboot中有关处理器架构相关的代码
board 为开发板定制的相关代码
common 通用代码,大部分与命令行有关
disk 磁盘分区相关代码
doc 有关README.txt相关代码
drivers 与驱动程序相关代码
examples 示例程序
fs 文件系统,适合大部分开发板上的文件系统
include 包含全局的头文件
lib 通用库文件
net 网络相关的代码,小型的协议栈
post Power On Self Test,上电自检程序
tools 辅助程序,用于编译和检查uboot目标文件

  总结一下,从目录结构上看,u-boot在移植过程中有两个经常需要动到的/arch和/board目录。作为一名初学者,或者还没有涉及到u-boot裁剪的话,我们尽力搞清楚这两个目录下的代码原理即可搞明白u-boot的工作流程。

原创文章 103 获赞 158 访问量 8万+

猜你喜欢

转载自blog.csdn.net/csdnxmj/article/details/95507165