自己学驱动5——uboot&linux源代码目录结构

时间:2020-12-19 05:22:57
●Board:和一些已有开发板相关的文件,比如Makefile和u-boot.lds等都和具体开发板的硬件和地址分配有关。
●Common:与体系结构无关的文件,实现各种命令的C文件。
●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程序奠定基础。
●Disk:Disk驱动的分区处理代码。
●Doc:UBOOT的开发和使用文档。
●Drivers:通用设备驱动程序,比如各种网卡、支持CFI的flash、串口和USB总线等。
●Dtt:数字温度测量器或者传感器的驱动。
●Examples:一些独立运行的应用程序的例子。
●Fs:支持文件系统的文件,u-boot现在支持cramfs、fat、fdos、jffs2、yaffs和registerfs。
●Include:头文件,还有对各种硬件平台支持的汇编文件,系统的配置文件和对文件系统支持的文件。Include目录下有一个asm文件夹,同时有一个asm-arm文件夹,这两个文件夹里面的内容在我自己下载的u-boot-1.2.0版本下是一致的,是为了适配以前的一些版本做出的妥协。
●Net:与网络有关的代码,BOOTP协议、TFTP协议RARP协议和NFS文件系统的实现。
●Lib_ppc:存放对PowerPC体系结构通用的文件,主要用于实现PowerPC平台通用的函数,与PowerPC体系结构相关的码。
●Lib_i386:存放对X86体系结构通用的文件,主要用于实现X86平台通用的函数,与PowerPc体系结构相关的代码。
●Lib_arm:存放对ARM体系结构通用的文件,主要用于实现ARM平台通用的函数,与ARM体系结构相关的代码。
●Lib_generic:通用的多功能函数实现。
●Post:上电自检。
●Rtc: 实时时钟驱动。
●Tools:创建S-Record格式文件和U-BOOT images的工具。

注:如果是需要使用sourceInsight来查看uboot的源码的话,Board、CPU、Include文件夹里面的内容需要根据实际的处理器或者平台板来选择,然而Lib库就只需要选择Lib_arm就可以了。其他的文件都是一些公用的文件都可以添加到工程当中去。

对于linux内核源码,使用S3C2440目标板,需要移除的目录如下:
●arch目录下除arm外的所有目录;
●arch/arm目录下以mach-开头的目录(mach-s3c2410、mach-s3c2440除外);
●arch/arm目录下以plat-开头的目录(plat-s3c24xx除外);
●include目录下以asm-开头的目录(asm-arm、asm-generic除外);
●include/asm-arm目录下以arch-开头的目录(arch-s3c2410除外)。