UBOOT——①顶层Makefile分析
UBOOT——①顶层Makefile分析
- 一、通识
- 1、版本号
- 2、 MAKEFLAGS 变量
- 3、编译选项
- 4、常用变量
- 二、 make xxx_defconfig 过程——生成.config
- 三、make过程——生成 u-boot.bin
- 总结
一、通识
1、版本号
VERSION = 2016 //主版本号
PATCHLEVEL = 03 //补丁版本号
SUBLEVEL = //次版本号
EXTRAVERSION = //附加版本信息
NAME = //名字有关的,一般不使用这两个
2、 MAKEFLAGS 变量
export VARIABLE //导出变量给子 make
unexport VARIABLE //不导出变量给子 makeMAKEFLAGS += -rR --include-dir=$(CURDIR)
MAKEFLAGS /SHELL 值始终自动的传递给子make 除非使用“unexport”声明-rR : 表示禁止使用内置的隐含规则和变量定义
--include-dir : 指明搜索路径
$(CURDIR): 表示当前目录
3、编译选项
V=1 来实现完整的命令输出
O=out 指定输出目录
C = 1 使能代码检查
M=dir 单独编译某个模块
HOSTARCH 主机架构
HOSTOS 系统
ARCH 架构 //ARCH = arm
CROSS_COMPILE 交叉编译工具 //arm-linux-gnueabihf- (只到 “ - ”)
CC = $(CROSS_COMPILE)gcc //CC 为编译gcc的简短语法
4、常用变量
ARCH = arm
CPU = armv7
BOARD = mx6ullevk
VENDOR = freescale
SOC = mx6
CPUDIR = arch/arm/cpu/armv7
BOARDDIR = freescale/mx6ullevk
ARCH CPU BOARD VENDOR SOC CPUDIR BOARDDIR
这几个变量定义自config.mk
config.mk:ARCH := $(CONFIG_SYS_ARCH:"%"=%)
CPU := $(CONFIG_SYS_CPU:"%"=%) //"%"=% 取双引号里面的值
.....= 是最基本的赋值
:= 是覆盖之前的值
?= 是如果没有被赋值过就赋予等号后面的值
+= 是添加等号后面的值
CONFIG_SYS_XXX
定义自 .config
文件
定义为: CONFIG_SYS_ARCH = “arm”
.config
由 make xxxx_defconfig
生成
二、 make xxx_defconfig 过程——生成.config
流程图:
详细参考正点原子linux驱动开发指南
使用conf程序去生成.config 另一种旧版使用mkconfig 去生成config.mk 、config.h
三、make过程——生成 u-boot.bin
u-boot.lds 为链接脚本,将 arch/arm/cpu/armv7/start.o 和各个子目录
下的 built-in.o 链接在一起生成 u-boot
总结
make xxx_defconfig:用于配置 uboot,这个命令最主要的目的就是生成.config 文件。
make:用于编译 uboot,这个命令的主要工作就是生成二进制的 u-boot.bin 文件和其他的一些与 uboot 有关的文件,比如 u-boot.imx 等等。
UBOOT——①顶层Makefile分析相关推荐
- U-Boot顶层Makefile分析
参考:U-Boot顶层Makefile介绍 作者:一只青木呀 发布时间: 2020-10-22 16:22:17 网址:https://blog.csdn.net/weixin_45309916/ar ...
- u-boot 顶层Makefile 分析
U-Boot 顶层Makefile 解析 u-Boot -Makefile(一) 声明 : 以下解析大部分来自网络大神之手 所以可以放心阅读 Good luck VERSION = 1 PATCH ...
- imx6ull:uboot顶层Makefile分析
版本号 MAKEFLAGES变量 20 MAKEFLAGS += -rR --include-dir=$(CURDIR) Makefile有两个特殊的变量:"SHELL"和&quo ...
- U-Boot 顶层 Makefile 分析二
6.代码检查 uboot 支持代码检查,使用命令"make C=1"使能代码检查,检查那些需要重新编译的文件."make C=2"用于检查所有的源码文件 # ...
- 【正点原子Linux连载】第三十一章 U-Boot顶层Makefile详解 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0
1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...
- U-Boot 顶层 Makefile 详解
U-Boot 顶层 Makefile 详解 1.U-Boot 工程目录分析 我们在分析 uboot 源码之前一定要 先在 Ubuntu 中编译一下 uboot 源码,因为编译过程会生成一些文件,而生成 ...
- u-boot的Makefile分析
U-BOOT是一个LINUX下的工程,在编译之前必须已经安装对应体系结构的交叉编译环境,这里只针对ARM,编译器系列软件为arm-linux-*. U-BOOT的下载地址: http://source ...
- U-boot 顶层Makefile 学习(1)
U-boot 顶层Makefile 学习(1) Makefile可以说是学习路上的难点之一,刚开始看视频学习时,很难跟得上讲师的步伐,虽然讲的很详细,但是由于没有Makefile基础,理解较为困难.建 ...
- uboot顶层Makefile
1. 工作目录 如上图代码,编译之后将解压包放到windows解压观看. 目录如下: 文件夹: 文件: 1.1 arch 这里面存放着和架构有关的文件 我们用的是arm架构的文件,打开arm文件夹: ...
- openwrt顶层Makefile分析-转
openwrt 这里主要介绍openwrt的主Makefile,并未对各个目录下的Makefile和相关文件进行介绍. 在Makefile里是两个主要的分支,由if语句根据OPENWRT_BUILD的 ...
最新文章
- 小撸 array map 源码
- 蚂蚁借呗和京东金条全面对比,哪个更划算?
- String 字符串去除特殊字符和空格,正则表达式使用,%1$s
- linq判断集合中相同元素个数_高中数学:集合与函数概念知识点汇总
- java jettison_java – 使用Jettison进行JSON解析
- DXperience 换肤
- 制定项目进度计划的过程
- HD TUNE以及所有其他硬盘检测工具都不能使用的情况
- 计算机入门培训考试,计算机基础培训考试习题.doc
- MATLAB绘图—三维等值线绘图(contour3)
- 计算机技术在图形图像处理中的应用,计算机图形图像处理技术综述
- 论文笔记—RGB-D SLAM in Dynamic Environments Using Static Point Weighting
- Holy Grail 圣杯布局详解
- RT-Thread Studio 项目实战教程 | 快速打造一个桌面mini网络时钟
- 【英语】maintext2-Emotional Mastery译文
- 华为EMUI10基本可以升鸿蒙,华为EMUI11发布,12月可升级为鸿蒙OS国产操作系统
- 电脑报专访微软亚洲研究院院长洪小文
- 黑帽技术与白帽技术的区别
- CXXNET 安装教程
- Open-XML-SDK 如何实现更新Word中域的值