U-BOOT-1.1.6-note-文件结构分析注释
来源:互联网 发布:教师远程网络培训 编辑:程序博客网 时间:2024/06/05 04:21
U-BOOT-1.1.6文件结构分析注释
U-BOOT-1.1.6可在denx的git仓库中下载: http://git.denx.de/?p=u-boot.git;a=summary
写作注释:
- 使用斜体字表示文件名
- 使用黑体字表示目录名
下面以三星SMDK2410开发板为例分析u-boot-1.1.6**主要项目结构:
该开发板参数:
BOARDNAME=SMDK2410, ARCH=arm,CPU=ARM920t, BOARD=SMDK2410, VENDOR=NULL, SOC=S3C24X0
完整文件结构:
- u-boot-1.1.6 >
- board >
- smdk2410 >
- config.mk
- flash.c
- lowlevel_init.s
- Makefile
- smdk2410.c
- u-boot.lds
- (*BOARD) >
- common >
- command.c
- main.c
- Makefile
- console.c
- flash.c
- usb.c
- cmd_*.c
- env_*.c
- cpu >
- arm920t >
- s3c24x0 >
- serial.c
- interrupts.c
- i2c.c
- *.c
- config.mk
- cpu.c
- interrupts.c
- start.s
- Makefile
- (*SOC) >
- disk >
- doc >
- README.*
- drivers >
- nand >
- nand.c
- Makefile
- nand_*.c
- * nand_legacy >
- nand_legacy.c
- Makefile
- device*.c
- deviec*.h
- dtt >
- examples >
- fs >
- ext2 >
- cramfs >
- jffs2 >
- fs* >
- Makefile
- include >
- asm-arm >
- arch-s3c24x0 >
- memory.h
- proc-armv >
- arch-* >
- configs >
- smdk2410.h
- (BOARD*).h
- Makefile
- lib_generic >
- lib_arm >
- board.c
- cache.c
- armlinux.c
- Makefile
- lib_<*ARCH>
- nand_spl >
- net >
- post >
- rtc >
- tools >
- Makefile
- config.mk
- arm_config.mk
- (*ARCH)_config.mk
- mkconfig
- rules.mk
- readme.mk
- COPYING
- CREDITS
- CHANGELOG
- CHANGELOG-before-U-Boot-1.1.5
分别注释几个主要文件
board 目录
- u-boot-1.1.6 >
- board >
- smdk2410 >
- config.mk
- flash.c
- lowlevel_init.s
- Makefile
- smdk2410.c
- u-boot.lds
- (*BOARD) >
board目录主要包含特定于开发板的文件,其中config.mk中定义了代码段的链接地址:
25: TEXT_BASE = 0X33F80000
u-boot.lds 中定了以具体的链接规则, lowlevel_init.s中负责SDRAM的初始化,flash.c的底层驱动等,并含有负责本级目录下编译的Makefile文件,将本目录下需要被编译的项目添加进COBJS、SOBJS目标,指定依赖项,定义当前目录下的clean,distclean目标,后续的各个目录下的Makefile文件所完成工作基本和这个相同,就不在挨个注释了。
common 目录
- u-boot-1.1.6 >
- common >
- command.c
- main.c
- Makefile
- console.c
- flash.c
- usb.c
- cmd_*.c
- env_*.c
common目录下为处理器开发板无关的通用上层指令,基本为对底层驱动的封装。指令处理函数cmd_*.c,环境变量的处理函数e*nv_*.c*,其中 command.c中可以根据宏U_BOOT_CMD()自定义u-boot的指令,main.c中定义了main_loop()函数。
cpu 目录
- u-boot-1.1.6 >
- cpu >
- arm920t >
- s3c24x0 >
- serial.c
- interrupts.c
- i2c.c
- *.c
- config.mk
- cpu.c
- interrupts.c
- start.s
- Makefile
- (*SOC) >
cpu目录下为与具体处理器体系结构,soc相关的文件。 针对smdk2410开发板,所用cpu为属于arm920t,外围的搭配外设构成了sop及片上系统,这个soc具体为s3c24x0型。
目录中start.s为整个程序的入口点,完成最初的系统初始化,针对具体的s3c24x0处理器,含有对应的一些外设的驱动函数。
drivers 目录
- u-boot-1.1.6 >
- drivers >
- nand >
- nand.c
- Makefile
- nand_*.c
- nand_legacy >
- nand_legacy.c
- Makefile
- device*.c
- deviec*.h
drivers目录为各种通用驱动文件,基本上包含了全部的外围驱动,如网卡、USB、串口、LCD、Nand Flash等等。它们通过宏定义引用与具体开发板处理器相关的底层驱动。
include 目录
- u-boot-1.1.6 >
- include >
- asm-arm >
- arch-s3c24x0 >
- memory.h
- proc-armv >
- arch-* >
- configs >
- smdk2410.h
- (BOARD*).h
- Makefile
include目录包含系统的配置文件与头文件,其中configs子目录下的smdk2410.h文件完成了对整个U-BOOT的功能的裁剪配置,子目录 asm-arm -> arch-s3c24x0 >下的memory.h 完成了对各段大小的配置。
lib_arm 目录
- u-boot-1.1.6 >
- lib_arm >
- board.c
- cache.c
- armlinux.c
- Makefile
lib_arm目录下为与处理器结构相关的一些初始化文件,比较重要的如board.c文件,在后面分析u-boot的启动流程时会用到其中的很多初始化函数。
tools 目录
- u-boot-1.1.6 >
- tools >
tools目录下包含了一些相关工具。
其他目录与文件
- u-boot-1.1.6 >
- doc >
- README.*
- dtt >
- examples >
- fs >
- ext2 >
- cramfs >
- jffs2 >
- fs* >
- Makefile
- lib_generic >
- lib_<*ARCH>
- nand_spl >
- net >
- post >
- rtc >
- Makefile
- config.mk
- arm_config.mk
- (*ARCH)_config.mk
- mkconfig
- rules.mk
- readme.mk
- COPYING
- CREDITS
- CHANGELOG
- CHANGELOG-before-U-Boot-1.1.5
Makefile负责整个项目的构建,mkconfig脚本根据Makefile中调用它是传入的参数来配置整个项目,config.mk对整个项目的编译工具链及编译选项进行配置,arm_config.mk针对具体arm架构进行更细的编译参数配置,rules.mk定义了对目标_depend的编译规则。具体编译过程可参考前一篇文章 U-BOOT-1.1.6编译过程分析 。
net下为支持各种网络协议的文件,post下为开发板的上电自检程序,rtc下为实时时钟的驱动文件,doc下为特定于各个开发板的README文件,dtt目录下包含数字温度传感器等驱动文件, fs目录下为文件系统, lib_generic目录下为通用的库函数,像printf函数等。
- U-BOOT-1.1.6-note-文件结构分析注释
- U-BOOT-1.1.6-note-编译部分
- u-boot-1.1.6 源码分析(1)--总体结构
- u-boot 1.1.6 mkconfig源码注释
- u-boot Makefile结构分析
- Uboot 的u-boot.lds注释分析
- U-BOOT代码详细注释分析
- 09课02节 u-boot-1.1.6分析之Makefile结构分析
- u-boot分析之Makefile结构分析
- u-boot mkconfig文件分析
- u-boot.lds 文件分析
- u-boot mkconfig文件分析
- u-boot mkconfig文件分析
- u-boot Makefile 文件分析
- u-boot.lds 文件分析 .
- u-boot mkconfig文件分析
- u-boot mkconfig 文件分析
- u-boot分析 二 (u-boot目录结构)
- java 死锁产生原因及解锁
- 期末1.0比赛
- H5学习小结——div+css创建电子商务静态网页
- Retrofit 2中@Path 和@Query的区别
- 初识reactJS的组件化开发(一):简单封装
- U-BOOT-1.1.6-note-文件结构分析注释
- POJ 2553——The Bottom of a Graph(强连通分量)
- PAT-B 1044. 火星数字
- Java设计模式之单例模式
- 脉搏信号检测与处理系统
- 算法的时间复杂度
- PHP5.4及PHP5.5关于htmlspecialchars输出为空的问题
- 第5课:零基础实战Scala函数式编程及Spark源码解析
- java-基础-接口和抽象类