uboot的学习之源码目录分析

文件分析:

1、.gitignore。是git工具的文件,git是一个版本管理工具。

2、arm_config.mk是Makefile文件,在将来的某个Makefile会调用该文件。

3、changlog相关的三个文件,修改记录文件,这些文件记录了这个uboot项目版本变迁以及每个版本的改变。

4、config.mk也是Makefile文件,是很重要的一个文件。

5、copying,版权申明,GPL许可的开源代码。

6、CREDITS,鸣谢。

7、image_split,脚本文件,用于分割uboot的,由于uboot的启动分为两节阶段,这里将uboot代码,分成BL1。

8、MAINTAINNESS,维护uboot的社区工作者。

9、MakeAll,bash脚本文件,帮助编译uboot的。

10、mk,脚本文件,快速编译的脚本文件。就是编译uboot的几个指令的集合。

11、Makefile,uboot源代码的主Makefile文件,整个uboot编译的纲领。

12、mkconfig,很重要的一个文件,是uboot的主要配置脚本,uboot的可移植性很大程度上是这个脚本维护的。

13、mkmovi,一个脚本文件,和iNand,SD卡的启动有关。

14、readMe

15、rule.mk,这个文件是uboot的Makefile使用的规则,本身很重要,不过不分析。

 

文件夹分析:

1、api,硬件无关的功能函数的API,这些函数是uboot本身所使用的。

2、api_examples,API相关的测试示例的代码。

3、board,board是板的意思,也就是我们这里的开发板,所以这个文件下的每个文件都代表一款开发板,这个文件夹下存放的文件都是用来描述这个开发的信息的。

配置的目的,就是选择哪个文件夹,选择哪个开发板。所以开发板越多,相应的board文件中的文件就越多,于是乎uboot新增一种机制,board目录下不直接放开发板的代码,而是在board目录下放各个厂商的文件夹,然后在各个厂商的文件夹下再放,这个厂商所生产的开发板,但是先前的思路不是这样的,所以为了兼容性,board文件夹下的文件很乱,既有开发板的文件,也有各个厂商的目录,不是对应厂商的开发板,都放在了对应厂商的文件夹下,而是根据时间的不同,为了兼容性,放置在正确的位置上。

所以这里就造成了麻烦,不同的开发板,配置的路径可能是不同的,所以需要修改。

4、common,普通的,架构无关的,与硬件无关的,普遍适用的一些代码,例如,控制台的实现,crc校验,但是更多的是cmd开头的,uboot的命令系统,和env开头的,环境变量相关的。

5、cpu,这个目录都是和soc相关的,里面存放的代码都是soc相关初始化和控制代码(譬如cpu,中断,串口与soc内部外设的,包括起始代码start.S也在这里)。里面有很多子文件夹,一个子文件夹就是一个soc系列。严格和硬件相关的,但是我们虽然开发板不同,但是soc都是相同的,所以不同改动这里的代码。

6、disk,磁盘相关的。

7、doc,文档目录,uboot的相关文档。

8、drivers,驱动相关的代码,这里面存放的都是从Linux源代码中移植过来的原封不动的Linux驱动,网卡驱动,iNand/SD卡、NandFlash等驱动。uboot实际的驱动就是Linux的驱动,但是由于uboot是裸机程序,所以移植会有不同。

9、examples,示例代码,没有用过。

10、fs,filessystem,文件系统,从Linux源码移植过来的,用来管理Flash等资源。

11、include,头文件目录,uboot和Linux在管理头文件上都采用同一种思路,把所有有关头文件全部集中存在include目录下,而不是放在对应的.c文件目录中。

12、lib_xxx开头的文件,具体架构有关的库文件

例如:lib_arm:arm架构使用的一些库文件

lib_generic:所有架构通用的。

13、licfd,设备树相关的,Linux内核在3.4左右版本的时候,更改了启动传参的机制,改用设备树进行启动参数的传递,进行硬件信息的描述,后面会介绍。

14、nand_spl,Nand相关的,我们这里使用的是iNand。

15、net,网络相关的,例如uboot中的tffp,nfs,ping命令等。

16、oneNand开头的,是oneNand相关的,是三星加的。

17、post,不知道啥东西。

18、sd_fusing,实现了烧录uboot镜像到SD卡的代码

19、tools,工具类的代码,mkimage等。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值