接着上篇博文uboot学习笔记之源码解读(一)描述,介绍uboot源码编译配置流程分析
1、shell基本知识
在阅读uboot源码的过程中,会遇到相关shell脚本的执行,因此会要求开发人员能够有一定的shell脚本语法,能够读懂shell脚本代码,在这里我只是介绍一些基本常见内容:
(1)单引号和双引号
在shell脚本中,单引号''和双引号""在本质上都是用来对字符串的使用,两者之间的区别在于:
单引号括起来的全部都是作为普通字符,失去原有含义:'$'就是字符$,没有了$在shell脚本的特殊用法,要想还原只能是用转义字符'\$'
双引号则不同,被双引号括起来的特殊关键字符还是保留其原有的含义:"$PATH"任然是表示将变量值输出为字符串
(2)中括号
相当于C语言中的()
(3)列表
在shell脚本中会经常出现列表:与列表、或列表
[ "${BOARD_NAME}" ] || BOARD_NAME="$1" #或列表,从左往右依次判断是否为真,知道遇到假的为止
[ $# -lt 4 ] && exit 1 #与列表,从左往右依次判断直到为假的结束
(4)$#
表示命令行输入的参数总个数
(5)$1、$2、$3、、、
表示命令行对应输入的参数
(6)@
指的是规则的目标,比如说make的时候传递的目标:make smdk2410_config
(7)字符串替换:$(text:A=B)
将text中的A用B来替换,作为新的字符串输出
(8)sed命令
sed是一条Linux命令,主要是用脚本来处理文本文件。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
sed [-hnV][-e<script>][-f<script文件>][文本文件]
参数说明:
-e<script>或--expression=<script> 以选项中指定的script来处理输入的文本文件。
-f<script文件>或--file=<script文件> 以选项中指定的script文件来处理输入的文本文件。
-h或--help 显示帮助。
-n或--quiet或--silent 仅显示script处理后的结果。
-V或--version 显示版本信息。
动作(脚本动作)说明:
a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
2、配置流程
执行make smdk2410_config的时候,就相当于最先执行顶层的Makefile,主要过程如下: