U-boot的整体结构和linux基本类似,编译方式一般也是非常类似的,一般的编译命令:

  make CROSS_COMPILE=arm-linux-gnueabihf- XXX(目标名)

清除命令:

  make CROSS_COMPILE=arm-linux-gnueabihf- distclean

  其实,他的目录结构也和linux'的内核比较类似,这里就对他的内核结构做个大致的介绍:

* board 目标板相关文件,主要包含各种驱动的初始化和配置,比如,SPI,USB,单板信息等

* common 独立于处理器体系结构的通用代码,主要是很多通用的接口封装,如USB,GPIO,文件系统等;

* examples可在U-Boot下运行的示例程序;如hello_world.c, timer.c,test_burst.c等

* driver 通用设备驱动,常用的通信接口驱动都有,如ddr,i2c,pci,net等

* include U-Boot头文件;尤其configs子目录下与目标板相关的配置头文件是移植过程中经常要修改的文件;

* SPL 与网络功能相关的文件目录,如bootp,nfs,tftp;

  SPL是Secondary Program Loader的简称,第二阶段程序加载器,这里所谓的第二阶段是相对于SOC中的

BROM来说的,之前的文章已经有所介绍,SOC启动最先执行的是BROM中的固化程序。

BROM会通过检测启动方式来加载第二阶段bootloader。uboot已经是一个bootloader了,那么为什么还多一个uboot spl呢?

这个主要原因是对于一些SOC来说,它的内部SRAM可能会比较小,小到无法装载下一个完整的uboot镜像,那么就需要spl,

它主要负责初始化外部RAM和环境,并加载真正的uboot镜像到外部RAM中来执行。所以由此来看,SPL应该是一个非常小

的loader程序,可以运行于SOC的内部SRAM中,它的主要功能就是加载真正的uboot并运行之。

  总体来说,u-boot的结构和linux内核还是很像的,以后在实际使用的过程中再继续分析一下代码和流程。

U-boot的编译方式及目录结构解析的更多相关文章

  1. iOS沙盒目录结构解析

    iOS沙盒目录结构解析 原文地址:http://blog.csdn.net/wzzvictory/article/details/18269713     出于安全考虑,iOS系统的沙盒机制规定每个应 ...

  2. InfluxDB源码目录结构解析

    操作系统 : CentOS7.3.1611_x64 go语言版本:1.8.3 linux/amd64 InfluxDB版本:1.1.0 influxdata主目录结构 [root@localhost ...

  3. Linux之目录结构解析

    /    /bin 存放[二进制可执行命令]目录,与usr/bin相比,它是系统性的.主要放置一些系统的必备执行档.例如:cat.cp.chmod df.dmesg.gzip.kill.ls. mkd ...

  4. Laravel5.1 目录结构解析

    学习一门框架,首先要了解的就是目录结构.对目录结构清晰就可以着手学习了~这里不作新特性的介绍,权当目录结构手册看吧.若发现有何不恰当的地方请联系我哦~注:写本文时参照的是5.1.4版本 目录或文件 说 ...

  5. Android NDK学习(一):目录结构解析

    我们配置好NDK环境后,基本可以看到其目录结构如下图: 下面我们来分析一下NDK根目录的结构: ndk-build:该Shell脚本是Android NDK构建系统的起始点,一般在项目中仅仅执行这一个 ...

  6. sencha touch 入门系列 (四)sencha touch 新建项目目录结构解析

    通过上一章节的操作,我们的项目已经创建完成了, 大家通过http://127.0.0.1/MyFirst/应该都已经访问到了自己的应用, 接下来,我们展开我们项目,如图所示: 一.目录结构 1. .s ...

  7. Android开发之 Android应用程序目录结构解析

    建立的HelloWorld的应用项目,其代码是由ADT插件自动生成的,形成Android项目特有的结构框架. 接下来让我带领大家解析一个Android程序的各个组成部分,这次我们拿一个Hello,Wo ...

  8. Java Web项目的一般目录结构解析(eclipse)

    以上为项目名为TestProject的目录结构截图,下面主要解析WebContent下各个目录的用途: css:存放项目所需要的css文件. images:存放项目所需要的图片文件. js:存放项目所 ...

  9. Hadoop HDFS本地存储目录结构解析

    转自:https://blog.csdn.net/superman_xxx/article/details/51689398 HDFS metadata以树状结构存储整个HDFS上的文件和目录,以及相 ...

随机推荐

  1. cdnbest获取,删除,增加,修改域名列表,高级设置api示例

    <?php $uid = 28; $vhost = 'asdfw'; $token = getToken($uid, $vhost); print_r($token); //获取token fu ...

  2. HDU 5977 Garden of Eden(点分治求点对路径颜色数为K)

    Problem Description When God made the first man, he put him on a beautiful garden, the Garden of Ede ...

  3. Agile PLM 开发中AgileAPI类型对应控制台分类说明

    1)    分类中的一级大类PLM后台管理的控制台中,每个分类中的一级大类都对应AgileAPI中一个类型 IServiceRequest对应产品服务请求,表为:psrIPrice对应价格,表为:pr ...

  4. stark组件开发之关键搜索

    - 模糊搜索: 在页面生成一个表单.  以get 方式, 将数据提交到.当前查看页面. 后台接收数据,然后进行筛选过滤. 着个也需要,用户自定制!   定义一个  search_list  这个值,默 ...

  5. cnetos 下 rar 解压

    第一步:http://www.rarlab.com/rar/rarlinux-x64-5.3.0.tar.gz 下载 文件 或 wget http://www.rarlab.com/rar/rarli ...

  6. Python开发——变量

    变量的作用 把程序运行的中间结果,临时保存到内存里,以备后面的代码继续调用 变量的声明 name = “yuan” 变量的定义规则 1.变量名只能是  字母.数字或下划线的任意组合 2.变量名的第一个 ...

  7. MySQL开发——【字符集、校对集】

    字符集 查看MySQL中的字符集 基本语法: show character set; 查看MySQL中的默认字符集 基本语法: show variables like ‘character_set%’ ...

  8. 代码之髓读后感——名字&作用域&类型

    名字和作用域 为什么要取名 看着代码中遍地都是的变量,函数,或多或少的我们都应该想过,为什么会有这些名字呢? 我们知道,计算机将数据存储到对应的物理内存中去.我们的操作就是基于数据的.我们需要使用这些 ...

  9. wamp环境搭建(apache安装,mysql安装,php安装)

    1.软件安装说明 WAMP:Window操作系统+Apache软件+PHP解析器+MySQL软件 2.Apache执行流程 用户向服务器端发送请求àDNS解析àIP地址à端口àApache服务 Apa ...

  10. Oracle使用JDBC进行增删改查 表是否存在

    Oracle使用JDBC进行增删改查 数据库和表 table USERS (   USERNAME VARCHAR2(20) not null,   PASSWORD VARCHAR2(20) ) a ...