全部博文(327)
分类: LINUX
2010-05-14 21:50:57
1.U-boot源码整体框架
源码解压以后,我们可以看到以下的文件和文件夹:
cpu |
与处理器相关的文件。每个子目录中都包括cpu.c和interrupt.c、start.S、u-boot.lds。 cpu.c初始化CPU、设置指令Cache和数据Cache等 interrupt.c设置系统的各种中断和异常 start.S是U-boot启动时执行的第一个文件,它主要做最早其的系统初始化,代码重定向和设置系统堆栈,为进入U-boot第二阶段的C程序奠定基础 u-boot.lds链接脚本文件,对于代码的最后组装非常重要 | |
board |
已经支持的所有开发板相关文件,其中包含SDRAM初始化代码、Flash底层驱动、板级初始化文件。 其中的config.mk文件定义了TEXT_BASE,也就是代码在内存的其实地址,非常重要。 | |
common |
与处理器体系结构无关的通用代码,U-boot的命令解析代码/common/command.c、所有命令的上层代码cmd_*.c、U-boot环境变量处理代码env_*.c、等都位于该目录下 | |
drivers |
包含几乎所有外围芯片的驱动,网卡、USB、串口、LCD、Nand Flash等等 | |
disk fs net |
支持的CPU无关的重要子系统: 磁盘驱动的分区处理代码 文件系统:FAT、JFFS2、EXT2等 网络协议:NFS、TFTP、RARP、DHCP等等 | |
include |
头文件,包括各CPU的寄存器定义,文件系统、网络等等 configs子目录下的文件是与目标板相关的配置头文件 | |
doc |
U-Boot的说明文档,在修改配置文件的时候可能用得上 | |
lib_arm |
处理器体系相关的初始化文件 比较重要的是其中的board.c文件,几乎是U-boot的所有架构第二阶段代码入口函数和相关初始化函数存放的地方。 | |
lib_avr32 lib_blackfin lib_generic lib_i386 lib_m68k lib_microblaze |
lib_mips lib_nios lib_nios2 lib_ppc lib_sh lib_sparc | |
api examples |
外部扩展应用程序的API和范例 | |
nand_spl onenand_ipl post |
一些特殊构架需要的启动代码和上电自检程序代码 | |
libfdt |
支持平坦设备树(flattened device trees)的库文件 | |
tools |
编译S-Record或U-Boot映像等相关工具,制作bootm引导的内核映像文件工具mkimage源码就在此 | |
Makefile MAKEALL config.mk rules.mk mkconfig |
控制整个编译过程的主Makefile文件和规则文件 | |
CHANGELOG CHANGELOG-before-U-Boot-1.1.5 COPYING CREDITS MAINTAINERS README |
一些介绍性的文档、版权说明 |
标为红色的是移植时比较重要的文件或文件夹。