正点原子[第三期]Arm(iMX6U)Linux移植学习笔记-5.1 uboot顶层Makefile分析-VSCode工程创建

前言:

本文是根据哔哩哔哩网站上"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.1 讲uboot顶层Makefile分析创建VSCode工程。本节将参考正点原子的视频教程和配套的正点原子开发指南文档进行学习。

0. 概述

先在 Ubuntu 下编译一下 uboot,然后将编译后的 uboot 文件夹复制到 windows 下,并创建VScode 工程。打开 VScode,选择:文件->打开文件夹...,选中 uboot 文件夹,如图 31.2.1 所

打开 uboot 目录以后, VSCode 界面如图 31.2.2 所示:

点击"文件->将工作区另存为...",打开保存工作区对话框,将工作区保存到 uboot 源码根目录下,设置文件名为"uboot",如图 31.2.3 所示:

保存成功以后就会在 uboot 源码根目录下存在一个名为 uboot.code-workspace 的文件。这样一个完整的 VSCode 工程就建立起来了。

但是这个 VSCode 工程包含了 uboot 的所有文件, uboot中有些文件是不需要的,比如 arch 目录下是各种架构的文件夹,如图 31.2.4 所示

在 arch 目录下,我们只需要 arm 文件夹,所以需要将其它的目录从 VSCode 中给屏蔽掉,比如将 arch/avr32 这个目录给屏蔽掉。

在 VSCode 上建名为".vscode"的文件夹,如图 31.2.5 所示

输入新建文件夹的名字,完成以后如图 31.2.6 所示

在.vscode 文件夹中新建一个名为"settings.json"的文件,然后在 settings.json 中输入如下内容:

bash 复制代码
{
    "search.exclude": {
        "**/node_modules": true,
        "**/bower_components": true,
    },
    "files.exclude": {
        "**/.git": true,
        "**/.svn": true,
        "**/.hg": true,
        "**/CVS": true,
        "**/.DS_Store": true,
    }
}
  • 其中"search.exclude"里面是需要在搜索结果中排除的文件或者文件夹,
  • "files.exclude"是左侧工程目录中需要排除的文件或者文件夹。

我们需要将 arch/avr32 文件夹下的所有文件从搜索结果和左侧的工程目录中都排除掉,因此在"search.exclude"和"files.exclude"中输入如图 31.2.8 所示内容:

保存一下 settings.json 文件,然后再看一下左侧的工程目录,发现 arch 目录下没有 avr32 这

个文件夹了,说明 avr32 这个文件夹被排除掉了,如图 31.2.9 所示:

我们只是在"search.exclude"和"files.exclude"中加入了: "arch/avr32": true,冒号前面的是要排除的文件或者文件夹,冒号后面为是否将文件排除, true 表示排除, false 表示不排除。用这种方法即可将不需要的文件,或者文件夹排除掉,对于本章我们分析 uboot 而言,在 "search.exclude"和"files.exclude" 中需要输入的完成的内容如下:

bash 复制代码
"**/*.o":true,
"**/*.su":true,
"**/*.cmd":true,
"arch/arc":true,
"arch/avr32":true,
"arch/blackfin":true,
"arch/m68k":true,
"arch/microblaze":true,
"arch/mips":true,
"arch/nds32":true,
"arch/nios2":true,
"arch/openrisc":true,
"arch/powerpc":true,
"arch/sandbox":true,
"arch/sh":true,
"arch/sparc":true,
"arch/x86":true,
"arch/arm/mach*":true,
"arch/arm/cpu/arm11*":true,
"arch/arm/cpu/arm720t":true,
"arch/arm/cpu/arm9*":true,
"arch/arm/cpu/armv7m":true,
"arch/arm/cpu/armv8":true,
"arch/arm/cpu/pxa":true,
"arch/arm/cpu/sa1100":true,
"board/[a-e]*":true,
"board/[g-z]*":true,
"board/[0-9]*":true,
"board/[A-Z]*":true,
"board/fir*":true,
"board/freescale/b*":true,
"board/freescale/l*":true,
"board/freescale/m5*":true,
"board/freescale/mp*":true,
"board/freescale/c29*":true,
"board/freescale/cor*":true,
"board/freescale/mx7*":true,
"board/freescale/mx2*":true,
"board/freescale/mx3*":true,
"board/freescale/mx5*":true,
"board/freescale/p*":true,
"board/freescale/q*":true,
"board/freescale/t*":true,
"board/freescale/v*":true,
"configs/[a-l]*":true,
"configs/[n-z]*":true,
"configs/[A-Z]*":true,
"configs/M[a-z]*":true,
"configs/M[A-Z]*":true,
"configs/M[0-9]*":true,
"configs/m[a-w]*":true,
"configs/m[0-9]*":true,
"configs/[0-9]*":true,
"include/configs/[a-l]*":true,
"include/configs/[n-z]*":true,
"include/configs/[A-Z]*":true,
"include/configs/m[a-w]*":true,

上述代码用到了通配符"*",比如"**/*.o"表示所有.o 结尾的文件。"configs/[a-l]*"表示 configs 目录下所有以'a' ~'l'开头的文件或者文件夹。 上述配置只是排除了一部分文件夹,大家在实际的使用中可以根据自己的实际需求来选择将哪些文件或者文件夹排除掉。排除以后我们的工程就会清爽很多,搜索的时候也不会跳出很多文件了。

相关推荐
ImAlex1 分钟前
运维大神教你如何用iftop和ss命令结合排查带宽占用高的进程
linux·运维
法迪36 分钟前
Linux电源管理(2)_常规的电源管理的基本概念和软件架构
linux·运维·服务器·功耗
Selina K1 小时前
界面打印和重定向同时实现
linux
JhonKI1 小时前
【Linux网络】构建与优化HTTP请求处理 - HttpRequest从理解到实现
linux·网络·http
古德赖可可1 小时前
chrony服务器(2)
linux·运维·服务器
running thunderbolt1 小时前
Linux:基础IO && 文件系统
linux·运维·性能优化
yangshuo12811 小时前
风车邮箱系统详细使用指南:Windows与Ubuntu双平台解析
linux·windows·ubuntu
GOATLong1 小时前
网络基础概念
linux·运维·服务器·网络·arm开发·c++
搏博2 小时前
机器学习之三:归纳学习
人工智能·深度学习·学习·机器学习
AgilityBaby2 小时前
unity Animation学习,精准控制模型动画播放
学习·3d·unity·游戏引擎