Visual Studio Code的使用
一、安装Visual Studio Code
VSCode的下载地址https://code.visualstudio.com/Download
下载好后使用sudo dpkg -i code..
命令安装:
sudo dpkg -i code_1.43.2-1585036376_amd64.deb
在/usr/share/applications
目录中找到VSCode,安装的所有软件都在这个目录;然后右键,选择复制到桌面
以后在桌面双击即可打开VSCode。
为VSCodean安装插件,打开VSCode,点击Extensions,然后搜索插件:
我们需要安装的插件:
1)、C/C++,这个肯定是必须的。
2)、C/C++ Snippets,即C/C++重用代码块。
3)、C/C++ Advanced Lint,即C/C++静态检测 。
4)、Code Runner,即代码运行。
5)、Include AutoComplete,即自动头文件包含。
6)、Rainbow Brackets,彩虹花括号,有助于阅读代码。
7)、One Dark Pro,VSCode 的主题。
8)、GBKtoUTF8,将GBK 转换为UTF8。
9)、ARM,即支持ARM 汇编语法高亮显示。
10)、Chinese(Simplified),即中文环境。
11)、vscode-icons,VSCode 图标插件,主要是资源管理器下各个文件夹的图标。
12)、compareit,比较插件,可以用于比较两个文件的差异。
13)、DeviceTree,设备树语法插件。
14)、TabNine,一款AI 自动补全插件,强烈推荐,谁用谁知道!
如果要查看已经安装好的插件,可以按照如图所示方法查看:
安装好插件后,我们将VSCode该为中文环境,按下Ctrl+Shift+P
打开搜索框,输入config
,然后选择Configure Display Language
,如图
然后点击zh-cn
,重启VSCode
修改成功:
二、VS Code 工程创建
打开 VScode,选择:文件 ->打开文件夹 …,选中 Linux文件夹,如图所示:
打开后如下所示:
点击“文件->将工作区另存为 …”,打开保存工作区对话框,将工作区保存到nxp_linux源码根目录下,设置文件名为“nxp-linux”,如图所示
保存成功以后就会在linux源码根目录下存在一个名为 nxp_linux.code-workspace的文件。这样 一个完整的 VSCode工程就建立起来了。但是这个 工程就建立起来了。但是这个VSCode工程包含了 工程包含了linux的所有文件,linux中有些文件是不需要的,所以需要将其它的目录从VSCode中给屏蔽掉。
在 VSCode上新建名为“ 名为“ .vscode”的文件夹,如图 所示:
在.vscode文件夹中新建一个名为“settings.json
”的文件,然后在settings.json中输入如下内容:
其中 "search.exclude
"里面是需要在搜索结果中排除的文件或者文件夹, "files.exclude
"是左 侧工程目录中需要排除的文件或者文件夹。
{
"search.exclude":{
"**/node_modules": true,
"**/bower_components": true,
"**/*.o":true,
"**/*.su":true,
"**/*.cmd":true,
"Documentation":true,
/* 屏蔽不用的架构相关的文件 */
"arch/alpha":true,
"arch/arc":true,
"arch/arm64":true,
"arch/avr32":true,
"arch/[b-z]*":true,
"arch/arm/plat*":true,
"arch/arm/mach-[a-h]*":true,
"arch/arm/mach-[n-z]*":true,
"arch/arm/mach-i[n-z]*":true,
"arch/arm/mach-m[e-v]*":true,
"arch/arm/mach-k*":true,
"arch/arm/mach-l*":true,
/* 屏蔽排除不用的配置文件 */
"arch/arm/configs/[a-h]*":true,
"arch/arm/configs/[j-z]*":true,
"arch/arm/configs/imo*":true,
"arch/arm/configs/in*":true,
"arch/arm/configs/io*":true,
"arch/arm/configs/ix*":true,
/* 屏蔽掉不用的DTB文件 */
"arch/arm/boot/dts/[a-h]*":true,
"arch/arm/boot/dts/[k-z]*":true,
"arch/arm/boot/dts/in*":true,
"arch/arm/boot/dts/imx1*":true,
"arch/arm/boot/dts/imx7*":true,
"arch/arm/boot/dts/imx2*":true,
"arch/arm/boot/dts/imx3*":true,
"arch/arm/boot/dts/imx5*":true,
"arch/arm/boot/dts/imx6d*":true,
"arch/arm/boot/dts/imx6q*":true,
"arch/arm/boot/dts/imx6s*":true,
"arch/arm/boot/dts/imx6ul-*":true,
"arch/arm/boot/dts/imx6ull-9x9*":true,
"arch/arm/boot/dts/imx6ull-14x14-ddr*":true,
},
"files.exclude": {
"**/.git": true,
"**/.svn": true,
"**/.hg": true,
"**/CVS": true,
"**/.DS_Store": true,
"**/*.o":true,
"**/*.su":true,
"**/*.cmd":true,
"Documentation":true,
/* 屏蔽不用的架构相关的文件 */
"arch/alpha":true,
"arch/arc":true,
"arch/arm64":true,
"arch/avr32":true,
"arch/[b-z]*":true,
"arch/arm/plat*":true,
"arch/arm/mach-[a-h]*":true,
"arch/arm/mach-[n-z]*":true,
"arch/arm/mach-i[n-z]*":true,
"arch/arm/mach-m[e-v]*":true,
"arch/arm/mach-k*":true,
"arch/arm/mach-l*":true,
/* 屏蔽排除不用的配置文件 */
"arch/arm/configs/[a-h]*":true,
"arch/arm/configs/[j-z]*":true,
"arch/arm/configs/imo*":true,
"arch/arm/configs/in*":true,
"arch/arm/configs/io*":true,
"arch/arm/configs/ix*":true,
/* 屏蔽掉不用的DTB文件 */
"arch/arm/boot/dts/[a-h]*":true,
"arch/arm/boot/dts/[k-z]*":true,
"arch/arm/boot/dts/in*":true,
"arch/arm/boot/dts/imx1*":true,
"arch/arm/boot/dts/imx7*":true,
"arch/arm/boot/dts/imx2*":true,
"arch/arm/boot/dts/imx3*":true,
"arch/arm/boot/dts/imx5*":true,
"arch/arm/boot/dts/imx6d*":true,
"arch/arm/boot/dts/imx6q*":true,
"arch/arm/boot/dts/imx6s*":true,
"arch/arm/boot/dts/imx6ul-*":true,
"arch/arm/boot/dts/imx6ull-9x9*":true,
"arch/arm/boot/dts/imx6ull-14x14-ddr*":true,
}
}
三、添加头文件路径
因为是编写Linux驱动,因此会用到Linux源码中的函数。我们需要在VSCode中添加 Linux源码中的头文件路径。打开VSCode,按下“ Crtl+Shift+P”打开 VSCode的控制台,然后输入“C/C++: Edit configurations(JSON)
”,打开 C/C++编辑配置文件,如图所示:
打开以后会自动在.vscode目录下生成一个名为c_cpp_properties.json
的文件,此文件默认内容如下所示: 内容如下所示:
第 5行的 includePath表示头文件路径,需要将Linux源码里面的头文件路径添加进来,也就是我们前面移植的 Linux源码中的头文件路径。添加头文件路径以后的c_cpp_properties.json的文件内容如下所示:
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"/home/william/imx6ull/project/nxp_linux/include/",
"/home/william/imx6ull/project/nxp_linux/arch/arm/include/",
"/home/william/imx6ull/project/nxp_linux/arch/arm/include/generated/",
],
"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "clang-x64"
}
],
"version": 4
}
第 7~9行就是添加好的 Linux头文件路径。分别是开发板所使用的Linux源码下的include、 arch/arm/include和 arch/arm/include/generated这三个目录的路径,注意里使用了绝对路径。