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”

.configmake 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分析相关推荐

  1. U-Boot顶层Makefile分析

    参考:U-Boot顶层Makefile介绍 作者:一只青木呀 发布时间: 2020-10-22 16:22:17 网址:https://blog.csdn.net/weixin_45309916/ar ...

  2. u-boot 顶层Makefile 分析

    U-Boot 顶层Makefile 解析 u-Boot -Makefile(一)  声明 : 以下解析大部分来自网络大神之手 所以可以放心阅读  Good luck VERSION = 1 PATCH ...

  3. imx6ull:uboot顶层Makefile分析

    版本号 MAKEFLAGES变量 20 MAKEFLAGS += -rR --include-dir=$(CURDIR) Makefile有两个特殊的变量:"SHELL"和&quo ...

  4. U-Boot 顶层 Makefile 分析二

    6.代码检查   uboot 支持代码检查,使用命令"make C=1"使能代码检查,检查那些需要重新编译的文件."make C=2"用于检查所有的源码文件 # ...

  5. 【正点原子Linux连载】第三十一章 U-Boot顶层Makefile详解 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  6. U-Boot 顶层 Makefile 详解

    U-Boot 顶层 Makefile 详解 1.U-Boot 工程目录分析 我们在分析 uboot 源码之前一定要 先在 Ubuntu 中编译一下 uboot 源码,因为编译过程会生成一些文件,而生成 ...

  7. u-boot的Makefile分析

    U-BOOT是一个LINUX下的工程,在编译之前必须已经安装对应体系结构的交叉编译环境,这里只针对ARM,编译器系列软件为arm-linux-*. U-BOOT的下载地址: http://source ...

  8. U-boot 顶层Makefile 学习(1)

    U-boot 顶层Makefile 学习(1) Makefile可以说是学习路上的难点之一,刚开始看视频学习时,很难跟得上讲师的步伐,虽然讲的很详细,但是由于没有Makefile基础,理解较为困难.建 ...

  9. uboot顶层Makefile

    1. 工作目录 如上图代码,编译之后将解压包放到windows解压观看. 目录如下: 文件夹: 文件: 1.1 arch 这里面存放着和架构有关的文件 我们用的是arm架构的文件,打开arm文件夹: ...

  10. openwrt顶层Makefile分析-转

    openwrt 这里主要介绍openwrt的主Makefile,并未对各个目录下的Makefile和相关文件进行介绍. 在Makefile里是两个主要的分支,由if语句根据OPENWRT_BUILD的 ...

最新文章

  1. 小撸 array map 源码
  2. 蚂蚁借呗和京东金条全面对比,哪个更划算?
  3. String 字符串去除特殊字符和空格,正则表达式使用,%1$s
  4. linq判断集合中相同元素个数_高中数学:集合与函数概念知识点汇总
  5. java jettison_java – 使用Jettison进行JSON解析
  6. DXperience 换肤
  7. 制定项目进度计划的过程
  8. HD TUNE以及所有其他硬盘检测工具都不能使用的情况
  9. 计算机入门培训考试,计算机基础培训考试习题.doc
  10. MATLAB绘图—三维等值线绘图(contour3)
  11. 计算机技术在图形图像处理中的应用,计算机图形图像处理技术综述
  12. 论文笔记—RGB-D SLAM in Dynamic Environments Using Static Point Weighting
  13. Holy Grail 圣杯布局详解
  14. RT-Thread Studio 项目实战教程 | 快速打造一个桌面mini网络时钟
  15. 【英语】maintext2-Emotional Mastery译文
  16. 华为EMUI10基本可以升鸿蒙,华为EMUI11发布,12月可升级为鸿蒙OS国产操作系统
  17. 电脑报专访微软亚洲研究院院长洪小文
  18. 黑帽技术与白帽技术的区别
  19. CXXNET 安装教程
  20. Open-XML-SDK 如何实现更新Word中域的值

热门文章

  1. 手机拍照达人:如何将照片转换为PDF文档
  2. Android recycleview(kotlin)实现上下滚动,类似中奖信息跑马灯
  3. 自然语言处理部分开源工具介绍
  4. 新年开篇,回顾2018年互联网套路简史
  5. 图片如何在Qt程序中显示
  6. 我喜欢计算机英语作文,我最喜欢的学科 My Favourite Subject
  7. 中国成语大全 v3.1 bt
  8. ESD门禁闸机系统的功能说明
  9. laravel 验证码的导入与使用(mews/captcha)
  10. jqGrid 5.x 参数详解