uboot的文件夹和文件目录的介绍

1、文件

(1).gitignore,git工具的文件,git是一个版本管理工具(类似的还有svn),这个文件和git有关。

(2)arm_config.mk,后缀是mk,是一个Makefile文件,将来在某个Makefile中去调用它。

(3)三个Changlog文件,修改记录文件,该文件记录了这个uboot项目的版本变迁以及每个版本修改对的记录。

(4)config.mk,这个和arm_config.mk差不多的性质

(5)COPYING,版本声明,uboot本身是GPL许可证的。

(6)COREDITS,感谢对uboot有贡献的人。

(7)image_split,一个脚本,看说明是用来分割uboot.bin到BL1的。

(8)MAINTAAINERS,参与维护uboot源码的社区工作者。

(9)MAKEALL,一个脚本,看用来帮助编译Makefile。

(10)Makefile,编译的总指挥。

(11)mk编译配置的脚本。

(12)mkconfig,配置的脚本。

(13)mkmovi,一个脚本,和iNand/SD卡启动有关。

(14)README,一个简单的说明书 。

(15)rules.mk,uboot的Makefile使用的规则。

2、目录

(1)api,硬件无关的功能函数的API,uboot移植时基本不用管,这些函数都是uboot本身使用的

(2)api_examples,api相关代码的测试示例代码。

(3)board,board是板的意思,板就是开发板,board文件夹下每一个文件都代表一个开发板,这个文件夹下面放的文件就是用来描述这一个开发板的信息的。

(4)common,commom普通的,这个文件夹下放的是一些与硬件无关的普通适用的代码,譬如控制台的实现,crc检验,但是更多的是两类:一类cmd开头的,用来实现uboot命令系统;还有就是env开头的,用来实现环境变量的。

(5)CPU,这个目录是SoC相关的,里面存放的代码都是SoC相关的初始化和控制代码(譬如CPU的、中断的、串口等SoC内部外设的,包括start.S也在这里)

(6)disk,和磁盘相关的

(7)doc,存的是文档目录,里面存放了很多uboot相关文档,这些文档可以帮助我们理解uboot代码。

(8)drivers,驱动,这里面放的就是linux源代码中扣出来原封不动的linux设备驱动,主要是开发板上必须用到的一些驱动,比如网卡驱动,Flash/SD卡,NandFlash等驱动。要知道:uboot的驱动其实就是linux中的驱动,uboot在一定程度上移植了linux驱动自己使用。但是linux是一个操作系统,而uboot只是一个裸机程序,因此这种移植会有些不同。

(9)examples,示例代码

(10)fs,filesystem,文件系统,这个也是从linux源代码中移植过来,用来管理Flash等资源。

(11)include,头文件目录,uboot和linux kernel在管理头文件都采用一个思路,就是把所有的文件全都集中放置include目录下,而不是头文件跟着自己对应的C文件。

(12)lib_开头的文件一堆(典型的lib_arm和lib_generic)架构相关的库文件。譬如lib_arm里面就是arm架构使用的一些库文件。lib_generic里是所有架构通用的库文件,这类文件夹的内容移植时基本不用管。

(13)libfdt,设备数有关的,linux内核在3.4左右的版本的时候更改了启动传参机制,改用设备树进行启动传参,进行硬件信息的描述。

(14)nand_spl,nand相关的。

(15)net,网络相关的,譬如uboot中的tftp,nfs,ping等命令

(16)onenand开头的,是onenand相关的代码,是三星加的,在标准uboot中应该是没有的。

(17)post,不常使用

(18)sd_fusing,这里面的代码实现SD卡中烧录uboot镜像。

(19)tools,工具类的代码

 

 

发布了89 篇原创文章 · 获赞 8 · 访问量 2万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览