首页 > 其他分享 >Uboot Makefile分析(一)

Uboot Makefile分析(一)

时间:2024-03-20 22:45:49浏览次数:33  
标签:分析 Uboot VERBOSE make Makefile mk KBUILD srctree config

学习资料来源:https://www.bilibili.com/video/BV12E411h71h?p=11&vd_source=432ba293ecfc949a4174ab91ccc526d6  

VERSION = 2016
PATCHLEVEL = 03
SUBLEVEL =
EXTRAVERSION =
NAME =
版本信息  
MAKEFLAGS += -rR --include-dir=$(CURDIR)    
+=表示追加, -rR表示禁止使用内置的隐含规则和变量定义,--include-dir表示指明搜索路径,CURDIR表示当前目录  
$(MAKE) -C subdir
调用make命令,-C表示指定目录。如果需要向子makefile传递变量,则可以用export来导出要传递给子make的变量即可,如果不希望哪个变量被导出,就可以用unexport来声明。  
ifeq ("$(origin V)", "command line")    // 用ifeq来判断V的来源,如果来源于命令行,赋值给KBUILD_VERBOSE
  KBUILD_VERBOSE = $(V)
endif
ifndef KBUILD_VERBOSE
  KBUILD_VERBOSE = 0
endif

ifeq ($(KBUILD_VERBOSE),1)    // 当V = 1的时候,则quiet为空,
  quiet =
  Q =
else
  quiet=quiet_
  Q = @                    // 与第17行一起展开就变成了@make $(build)=tools,命令前面加上@就不会在终端输出命令了
endif

... ...
$(Q)$(MAKE) $(build) = tools
  make -s可设置为静默编译,编译时不输出任何信息 make -O表示生成文件的目录,不指定就在与.c同样的目录了   看Makefile也可以加打印Log,可以使用如下技巧:
print_test:
    echo srctree = $(srctree)
    echo objtree = $(objtree)
    echo VPATH = $(VPATH)
执行make print_test目标查看srctree等等表示啥  
KCONFIG_CONFIG ?= .config
export KCONFIG_CONFIG        // 导出.config
export ARCH CPU BOARD VENDOR SOC CPUDIR BOARDDIR    // 这些导致的参数都是在config.mk中定义的,config.mk进而读取到defconfig里面的内容
sinclude $(srctree)/arch/$(ARCH)/config.mk    // 没有相应的config.mk不会报错
include $(srctree)/$(CPUDIR)/config.mk    // 没有相应的config.mk会报错

 

     

标签:分析,Uboot,VERBOSE,make,Makefile,mk,KBUILD,srctree,config
From: https://www.cnblogs.com/lethe1203/p/18086292

相关文章

  • Uboot功能
    Uboot功能Uboot(Universalbootloader)就是一个裸机程序,用于启动内核。不过相较于单片机程序更加复杂相关知识补充Uboot:UniversalbootloaderXIP:CPU可以直接发出地址信号读取Flash/RAM,执行指令(可以看成直接在Flash/RAM中运行);此类Flash/RAM称为XIP设备非XIP:有时程序从SD卡......
  • 基于python+django+Spark的动漫推荐可视化分析系统
    摘 要近年来,随着互联网的蓬勃发展,企事业单位对信息的管理提出了更高的要求。以传统的管理方式已无法满足现代人们的需求。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,随着各行业的不断发展,基于Spark的国漫推荐系统的建设也逐渐进入了信息化的进程。这个系统......
  • WolvCTF2024 一道RE题目的分析
    doubledelete'srevenge:这道题给了两个附件:reveng1(elf)和一个未知格式文件flag.txt.enchxd看一下这个文件应该是加密过的文件再来分析一下elf程序逻辑是读取文件,然后进行加密,然后再写出文件,刚才那个flag.txt.enc加密过程:fread(ptr,1uLL,0x30uLL,stream);//......
  • 性能测试实战系列(18):压测执行 - 容量场景(含监控、分析、调优、回归)
     本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/15475614.html测试执行根据容量场景设计,非gui执行脚本。 结果12线程  监控(部分) 性能问题:锁使用不合理待更新... ......
  • 性能测试实战系列(19):压测执行 - 稳定性场景(含监控、分析、调优、回归)
     本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/15475614.html测试执行根据稳定性场景设计,非gui执行脚本。 结果说明:下图大概00:25后tps上升,是因为我把服务器上无关的服务停了 结论达到压测目标 ......
  • Uboot命令的使用
    学习资料:https://www.bilibili.com/video/BV12E411h71h?p=6&vd_source=432ba293ecfc949a4174ab91ccc526d6https://blog.csdn.net/x777777x/article/details/136444785 记录一次uboot启动log打印:U-Boot2016.03(Mar182024-01:07:08+0800)//编译时间2024/03/180......
  • 关于衍射光波导设计中的K阈(k-domain)分析的一些学习
     对于衍射光波导的设计来说,不能简单利用几何光的方法对光线的传播路径进行描述。因此可以基于K空间波矢的矢量运算来进行描述。 在阈值分析中,衍射光波导的光线传播遵循二个引导条件,分别为全内反射条件和引导模式条件。如图所示。             ......
  • Java CC链全分析
    CC链全称CommonsCollections(Java常用的一个库)梦的开始CC1环境部署JDK版本:jdk8u65Maven依赖:<dependencies><!--https://mvnrepository.com/artifact/junit/junit--><dependency><groupId>junit</groupId><......
  • 需求分析方法论
    按照需求分析流程,我把需求分析方法论,分为三个阶段,分别是:收集需求阶段,评估需求阶段,精炼需求阶段。收集需求:尽可能全面的收集需求,不管需求能不能实现,这个阶段不要去考虑能不能实现的问题,务必要做到三个全面,即人员全面,结构全面,工具全面,后面逐一展开讲这三个全面是什么意思。评估需......
  • 三款.NET代码混淆工具比较分析:ConfuserEx、Obfuscar和Ipa Guard
    ​随着.NET应用程序的广泛应用,保护知识产权和防止逆向工程的需求逐渐增长。本文将详细介绍三款知名的.NET代码混淆工具:ConfuserEx、Obfuscar和IpaGuard,帮助读者全面了解其功能特点和应用场景。一、ConfuserExConfuserEx是一个.NET代码混淆工具,支持多种混淆技术,包括控制流混淆......