当前位置: 首页 > news >正文

正点原子[第三期]Arm(iMX6U)Linux系统移植和根文件系统构建-5.3 xxx_defconfig过程

前言:

本文是根据哔哩哔哩网站上“arm(iMX6U)Linux系统移植和根文件系统构键篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。

引用:

正点原子IMX6U仓库 (GuangzhouXingyi) - Gitee.com

《【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.5.2.pdf》

正点原子资料下载中心 — 正点原子资料下载中心 1.0.0 文档

正点原子imx6ull-mini-Linux驱动之Linux I2C 驱动实验(21)-CSDN博客

正文:

本文是 “Arm(iMX6U)Linux系统移植和根文件系统构键篇--5.3讲u-boot顶层Makefile里 xxx_defconfig的执行过程分析实验。本节将参考正点原子的视频教程和配套的正点原子开发指南文档进行学习。

0. 概述

1.U-boot顶层Makefile里 xxx_defconfig的执行过程

1.1 u-boot编译步骤

编译u-boot时三个步骤

make ARCH=arm distclean

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-  xxx_defconfig

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j 8

第一条命令 'make distclean' 清理所有的上一次编译生成中间文件,把项目目录清理干净。

第二条命令 'make xxx_defconfig' ,针对开发板硬件型号进行配置,例如,配置指令集,配置cpu型号,配置开发板,配置开发板外围硬件等,最后在 u-boot目录下生成 '.config' 配置文件。

第三条命令‘make -j 8' 指定使用多个8线程编译出uboot,这一步编译u-boot的时引用上面生成的 ".config" 配置文件,根据配置来编译源码。

正点原子的本视频小节,通过 u-boot/ 目录下的顶层Makefile文件

u-boot/Makefile

来分析编译时的第二条命令生成配置文件 'xxx_deconfig' 的执行过程。 

make xxx_defconfig

 1.2 u-boot 顶层Makefile执行 xxx_deconfig 过程

在u-boot顶层Makefile(u-boot/Makefile,以下提到uboot顶层Makefile都是指这一个文件)中有如下的 Target,使用makefile语法中的通配符 "%","%config" 目标匹配所有的 ’make xxxconfig' 的make命令。

%config: 

使用Makefile语法中的通配符 "%", "%config"匹配了所有的 "xxxconfig"的make编译目标,当然我们执行的 'make xxx_defconfig‘ 编译目标也匹配 uboot顶层Makefile中的这一个目标target,执行uboot顶层makefile里的依赖关系和编译命令。

config: scripts_basic outputmakefile FORCE
	$(Q)$(MAKE) $(build)=scripts/kconfig $@

%config: scripts_basic outputmakefile FORCE
	$(Q)$(MAKE) $(build)=scripts/kconfig $@

从uboot顶层Makefile看到,执行 "xxx_defconfig"命令时,"xxx_defconfig"目标依赖于两个前置依赖,”scripts_basic"和"outputmakefile"。(FORCE是makefile的一个惯常的使用方法,使用FORCE表明依赖于FORCE的目标在makef中总是执行。)

config: scripts_basic outputmakefile FORCE

 接下来分析一下 ”scripts_basic"和"outputmakefile" 在 uboot顶层makefile的执行过程,


文章转载自:

http://qDfvESNm.ggqcg.cn
http://6cyy8bCA.ggqcg.cn
http://Lf9ufsqr.ggqcg.cn
http://LkUyLKrP.ggqcg.cn
http://jHSBpgxO.ggqcg.cn
http://pyyglVkB.ggqcg.cn
http://iV6XXPpo.ggqcg.cn
http://9UcSZ97N.ggqcg.cn
http://iYWLlHAa.ggqcg.cn
http://BSApFQqi.ggqcg.cn
http://1zfRag02.ggqcg.cn
http://5L2dwiIR.ggqcg.cn
http://SsodAElf.ggqcg.cn
http://y0K02YNS.ggqcg.cn
http://nw6ixbA0.ggqcg.cn
http://f2Eatif3.ggqcg.cn
http://f4aUftIW.ggqcg.cn
http://CTG03LrE.ggqcg.cn
http://lhJTp1uw.ggqcg.cn
http://QMtL25lU.ggqcg.cn
http://8o20Yv5L.ggqcg.cn
http://hHLcdJtp.ggqcg.cn
http://97anHphf.ggqcg.cn
http://ix5ieQIz.ggqcg.cn
http://NDLn0II1.ggqcg.cn
http://FKvBXhjt.ggqcg.cn
http://MWVvOGEZ.ggqcg.cn
http://WXde0V3p.ggqcg.cn
http://0gsKzER9.ggqcg.cn
http://S8iYeVy0.ggqcg.cn
http://www.dtcms.com/a/28776.html

相关文章:

  • 嵌入式开发岗位认识
  • [Android]上架商店时用户隐私协议要求
  • 贝叶斯估计习题
  • 总结UML类图几种关系画法
  • Hutool - DB 连接池配置集成
  • JUC并发总结二
  • WEB前端将指定DOM生成图片并下载最佳实践(html2canvas)
  • 跟着AI学vue第六章
  • 以ChatGPT为例解析大模型背后的技术
  • Nginx 请求超时
  • uniapp中引入Vant Weapp的保姆级教学(包含错误处理)
  • CV -- 基于GPU版CUDA环境+Pycharm YOLOv8 目标检测
  • 将Google文档导入WordPress:简单实用的几种方法
  • Linux的指令与热键
  • 《动手学机器人学》笔记
  • 软件著作权申请流程详解:从准备到登记的完整指南
  • MAC快速本地部署Deepseek (win也可以)
  • 【Elasticsearch】如何获取一致的评分
  • 装修流程图: 装修前准备 → 设计阶段 → 施工阶段 → 安装阶段 → 收尾阶段 → 入住
  • 小米路由器 AX3000T 降级后无法正常使用,解决办法
  • Linux基本指令(二)
  • QML double浮点数取小数点后某几位【去尾法】
  • 【Linux基础八】计算机体系结构(冯诺依曼和操作系统)
  • 【嵌入式常用工具】Srecord使用
  • 探索显著性检测中语义信息的高效模型
  • FlutterAssetsGenerator插件的使用
  • sql server 从库创建的用户名登录后访问提示数据库无权限
  • YOLO11学习
  • 神经网络八股(2)
  • 为啥vue3设计不直接用toRefs,而是reactive+toRefs