分类: 嵌入式
2010-12-03 15:24:14
U-BOOT的目录结构
网上采用的u-boot一般是1.1或1.2系列的版本,其目录结构介绍的资料比较多,在新一些的版本中U-boot目录结构做了比较大的改变,比以前的版本更加简洁、合理。下面对比其异同,进行进一步讲解。
一、 1.1或1.2等老版本U-boot目录结构
u-boot目录下有18个子目录,分别存放管理不通的源程序。这些目录中所要存放的文件有其规则,可以分成三类。
n 第一类目录与处理器体系结构或者开发板硬件直接相关;
n 第二类目录是一些通用的函数或者驱动程序;
n 第三类目录是u-boot的应用程序、工具或者文档。
目 录 |
特 性 |
备 注 |
2010.6不同之处 |
board |
平台依赖 |
存放电路板相关目录文件, 比如Makefile和u-boot.lds等都和具体开发板的硬件和地址分配有关。 |
没有太大别,增加了一些开发板的支持,将一些开发板进行了整理,比如支持的所有三星公司的开发板都统一放在samsung下 |
cpu |
平台依赖 |
存放CPU相关的目录文件 其中的子目录都是以u-boot所支持的CPU为名 比如有子目录arm926ejs、mips、mpc8260和nios等 每个特定的子目录中都包括cpu.c和interrupt.c和start.S,其中 cpu.c初始化cpu、设置指令cache和数据cache等; interrupt.c设置系统的各种终端和异常,比如快速中断,开关中断、时钟中断、软件中断、预取中止和未定义指令等; start.S是u-boot启动时执行的第一个文件,他主要是设置系统堆栈和工作发式,为进入C程序奠定基础。 |
改动比较大,在2010.6下更名为arch,可能是为了跟内核统一,呵呵。 子目录以体系结构进行统一划分,比如arm、mips、sh等,不像以前那么混乱。 每种体系结构下统一有三个目录: cpu、lib、include。 cpu目录:存放采用相应体系结构处理器的具体分类,比如arch/arm/cpu下存放的为arm720t,arm920t等,包括最新的cortex-a8系列,作用与旧版本的cpu目录下的对应目录相同 lib目录:存放对相应的体系结构CPU通用的文件,等价于旧版本的lib_XX,比如arch/arm/lib目录作用与旧版本根目录下的lib_arm目录相同,以此类推 include:存放与相应体系结构对应的头文件,例如:arm/arm/include/asm等价于旧版本根目录下include/arm-asm目录 |
include |
通用 |
头文件和开发板配置文件 所有开发板的配置文件都在configs目录下 |
去除了跟平台相关的头文件,其它跟以前类似 |
common |
通用 |
通用的多功能函数实现 与体系结构无关的文件,实现各种命令的C文件。 |
跟旧版本一致 |
Lib_arm |
平台依赖 |
存放对ARM体系结构通用的文件 主要用于实现ARM平台通用的函数 与ARM体系结构相关的代码。 |
合并到arch/XXX/lib对应目录下 |
Lib_ppc |
平台依赖 |
存放对PowerPC体系结构通用的文件 主要用于实现PowerPC平台通用的函数 与PowerPC体系结构相关的代码。 | |
Lib_i386 |
平台依赖 |
存放对X86体系结构通用的文件 主要用于实现X86平台通用的函数 | |
Lib_generic |
通用 |
通用的多功能函数实现。 |
等价于新版本的lib目录 |
net |
通用 |
与网络有关的代码 BOOTP协议、TFTP协议、RARP协议和NFS文件系统的实现。 |
跟旧版本一致 |
fs |
通用 |
支持文件系统的文件 u-boot现在支持cramfs、fat、fdos、jffs2、yaffs和registerfs。 |
增加支持yaffs2、ubifs两种文件系统,其它的均一样 |
post |
通用 |
存放上电自检程序 |
跟旧版本一致 |
drivers |
通用 |
通用设备驱动程序 比如各种网卡、支持CFI的flash、串口和USB总线等。 |
跟旧版本一致 重新整理的目录结构,比以前更加合理、整齐,同时增加了许多新的硬件驱动 |
disk |
通用 |
硬盘接口程序 disk驱动的分区处理代码、 |
跟旧版本一致 |
rtc |
通用 |
RTC驱动程序 |
整合到drivers下 |
dtt |
通用 |
数字温度测量器或者传感器的驱动 |
整合在drivers/hwmon下 |
doc |
通用 |
开发使用文档 |
跟旧版本一致 |
tools |
通用 |
存放制作S-Record 或者 U-Boot格式的映像等工具,例如mkimage 创建S-Record格式文件和U-BOOT images的工具。 |
跟旧版本一致 |
examples |
通用 |
一些独立运行的应用程序的例子,例如helloworld 一些独立运行的应用程序的例子。 |
跟旧版本一致 |
|
|
|
|
|
|
|
|