初识嵌入式系统(八)

姓名:张硕 学院:电子工程学院 学号:19020100006

转自:https://blog.csdn.net/qq_38612145/article/details/107632892

嵌牛导读:本文主要介绍了uboot目录内容包括uboot编译以及其目录分析。

嵌牛鼻子:嵌入式系统、uboot目录内容

嵌牛提问:uboot编译之前的检查步骤有哪些?

嵌牛正文:

                         uboot目录内容

1.uboot配置

uboot和Linux kernel等复杂项目,都不能直接编译,都要先配置才能编译。uboot具体配置方法为,进入uboot源码的根目录,在其下执行:

make x210_sd_config

执行配置命令后出现:

Configuring for x210_sd board...

说明配置好了,如果不是则是配置出错

2. uboot编译

编译之前要检查arm-linux-gcc对不对,检查过程分两步

检查当前编译环境中有没有安装合适的arm-linux-gcc

检查uboot根目录的makefile中编译器的设置是否正确(makefile文件中147行的CROSS_COMPILE是否为自己安装的交叉编译工具链)

检查无误后,在uboot根目录直接输入make -j4进行编译,-j4的意思为四核编译,j2则是两核编译

3. uboot目录分析

各文件介绍

.gitignore:git工具的文件,和uboot本身无关

arm_config.mk:是一个makefile文件,将在来某个makefile中会调用它

CHANGELOG:三个修改记录文件,记录了这个uboot项目的版本变迁以及每个版本较上个版本修改的记录

config.mk:和arm_config.mk差不多性质

COPYING:版权声明,uboot本身是GPL许可证的

CREDITS:感谢对uboot贡献较大的人

MAINTAINERS:维护者,当前社区参与维护uboot源码的人

MAKEALL:一个脚本,帮助编译uboot的

Makefile:uboot源代码的主Makefile

mk:脚本语言,uboot快速编译的脚本,其实是先清理,然后配置和编译

mkconfig:是uboot配置阶段的主要配置脚本。uboot的可移植性很大程序靠这个配置脚本在维护

mkmovi:一个与iNand/SD卡启动有关的脚本

README:简单的使用说明书

rules.mk:uboot的makefile使用的规则,本身非常重要

以上文件中,mkconfig和makefile两个文件,一个负责uboot配置,一个负责编译,比较重要,需要重点分析。

各文件夹介绍

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

api_example:API相关的测试实例

board:板的意思,文件夹下每一个文件都代表一个开发板,文件时用来描述每一个开发板的信息的。uboot的配置阶段(其实就是根目录下面的mkconfig脚本和makefile中配置有关的部分)主要解决的问题就是在可移植性领域能够帮助我们确定具体的文件夹路径,然后编译时找到对应的文件,才能编译成功。所以,board目录下的不同会造成配置时的不同,如果移植时不注意这里肯定会失败

common:文件夹下放的是一些与具体硬件无关的普适代码,包括控制台、CRC校验等,主要分为:cmd开头的,用来实现uboot的命令系统;env开头的,用来实现环境变量的

cpu:这个目录与SoC有关,里面存放的代码都是SoC相关初始化和控制代码(譬如CPU的、中断的、串口等内部外设的,包括起始代码start.S),每一个文件夹就是一个SoC系列

disk:磁盘有关的

doc:文档目录,里面存放了很多uboot相关文档,这些文档帮助理解uboot代码

driver:驱动,从Linux源代码中抠出来的原封不动的Linux设备驱动,主要是开发板上必须用到的一些驱动。uboot在一定程度上移植了Linux中的驱动

examples:示例代码

fs:文件系统,从Linux源代码中移植过来的,用来管理Flash等资源

include:头文件目录,uboot和Linux kernel在管理头文件时采用同一个思路,就是把所有的头文件全部集中存在的include目录下,而不是头文件跟着自己对应的c文件,所以在uboot中头文件包含时路径结构要在这里去找。

lib_*:架构相关的库文件。lib_arm为arm架构使用的一些库文件;lib_generic里面是所有架构通用的库文件。这类文件夹的内容移植时基本不用管

libfdt:设备树有关的,Linux内核在3.4左右的版本更改了启动传参的机制,改用设备树来进行启动传参,进行硬件信息的描述

nand_spl:nand相关的

net:网络相关代码

onenand:和onenand相关代码,,三星假的

post:

sd_fusing:里面代码实现了烧录uboot镜像到SD卡的代码

tools:工具类代码

文件夹中,board、common、cpu、drivers、include、lib_arm、lib_generic、sd_fusing比较重要,后面分析会涉及。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容