正点原子[第三期]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'开头的文件或者文件夹。 上述配置只是排除了一部分文件夹,大家在实际的使用中可以根据自己的实际需求来选择将哪些文件或者文件夹排除掉。排除以后我们的工程就会清爽很多,搜索的时候也不会跳出很多文件了。

相关推荐
切糕师学AI几秒前
Ubuntu 下 Git 完全使用指南
linux·git·ubuntu
浪客灿心18 分钟前
Linux网络传输层协议
linux·运维·网络
舟遥遥娓飘飘1 小时前
Nexus4CC 手机电脑同步claude code对话部署教程(基于linux系统)
linux·智能手机·电脑
何妨呀~1 小时前
Firewalld防火墙端口配置
linux
切糕师学AI1 小时前
Vim 深度解析:从经典 vi 到现代编辑器之巅
linux·vim·文本编辑器
Amazing_Cacao1 小时前
CFCA精品可可产区认证课程风土解析(美洲):打破风味堆叠的假象,建立时间轴上的层次展开阅读系统
学习
永远不会的CC1 小时前
浙江华昱欣实习(4月23日~ 4月19日)
后端·学习
爱上好庆祝1 小时前
学习js的第五天
前端·css·学习·html·css3·js
计算机安禾1 小时前
【Linux从入门到精通】第49篇:服务器故障排查终极指南——思路决定出路
linux·运维·服务器
古月-一个C++方向的小白2 小时前
Linux——初识文件
linux·运维·服务器