Visual Studio Code(简称Vscode)是微软发布的一款源代码编辑器,目前,已经有了相当高的市场占有率,并且增长迅速。本节课我们将讲述如何使用Vscode编辑飞控源代码和编译飞控固件。

1 安装Vscode

1.1 下载Vscod官方文件,并安装。注意请使用Visual Studio Code - Insiders版本。
1.2 安装Vscode插件。包括:
1.2.1 C/C++。必选。
1.2.2 Chinese (Simplified) Language Pack for Visual Studio Code。可选,简体中文支持。
1.2.3 Bracket Pair Colorizer 2。可选,将不同层级的括号用不同的颜色显示,同时以竖线的形式提示括号的范围,非常好用!
1.2.4 vscode-icons。可选,将不同类型的文件用不同的图标显示。
1.2.5 GitLens。可选,建议安装,这是个神器!
1.2.6 Task Runner。可选,方便快速运行编译任务。注意,要安装的是作者为“Sana Ajani”的那个插件。

2 针对飞控代码设置Vscode

2.1 建3个文件,分别为c_cpp_properties.json、settings.json、tasks.json。
c_cpp_properties.json的文件输入如下内容:
{
“configurations”: [
{
“name”: “Win32”,
“includePath”: [
“${workspaceFolder}/**”
],
“defines”: [
“_DEBUG”,
“UNICODE”,
“_UNICODE”
],
“compilerPath”: “C:\cygwin64\bin\gcc.exe”,
“cStandard”: “gnu17”,
“cppStandard”: “gnu++14”,
“intelliSenseMode”: “linux-gcc-x64”
}
],
“version”: 4
}
settings.json文件输入如下内容:
{
“files.autoSave”: “afterDelay”,
“files.associations”: {
“algorithm”: “cpp”,
“functional”: “cpp”,
“chrono”: “cpp”,
“atomic”: “cpp”,
“fstream”: “cpp”,
“iomanip”: “cpp”,
“istream”: “cpp”,
“list”: “cpp”,
“ostream”: “cpp”,
“sstream”: “cpp”,
“streambuf”: “cpp”,
“xlocbuf”: “cpp”,
“memory”: “cpp”,
“xhash”: “cpp”,
“xlocnum”: “cpp”,
“bitset”: “cpp”,
“random”: “cpp”,
“regex”: “cpp”,
“forward_list”: “cpp”,
“ios”: “cpp”,
“xstring”: “cpp”,
“xutility”: “cpp”,
“iosfwd”: “cpp”,
“ratio”: “cpp”
},
// 切换到当前工作目录
“terminal.integrated.env.windows”: {
“CHERE_INVOKING”: “1”
},
“C_Cpp.formatting”: “Default”,
// 不包含的文件夹
“files.exclude”: {
“AntennaTracker/“: true,
“ArduCopter/“: false, // 如果使用的是多旋翼固件,则将此文件夹的隐藏设置为”false”
“APMrover2”: true,
“ArduPlane/“: true,
“ArduSub/“: true,
“build/“: false,
“docs/“: true,
“logs/“: true,
“mk/“: true,
“terrain/“: true,
“tests/“: true
},
// APM固件代码风格,基于Google规范,但是tab是4个空格
“C_Cpp.clang_format_fallbackStyle”: “{BasedOnStyle: Google, IndentWidth: 4 }”,
// 粘贴时自动格式化
“editor.formatOnPaste”: false,
}
tasks.json文件中输入如下内容:
{
“version”: “2.0.0”,
“tasks”: [
{
“type”: “shell”,
“label”: “进入目录”,
“command”: “cd /cygdrive/d/ardupilot”,
“args”: []
},
{
“type”: “shell”,
“label”: “清理工程”,
“command”: “./waf distclean”,
“args”: [],
“dependsOn”: [
“进入目录”
],
“problemMatcher”: []
},
{
“type”: “shell”,
“label”: “配置编译目标为CUAVv5Nano”,
“command”: “./waf configure —board CUAVv5Nano”,
“args”: [],
“dependsOn”: [
“进入目录”
],
“problemMatcher”: []
},
{
“type”: “shell”,
“label”: “编译多旋翼翼固件”,
“command”: “./waf copter”,
“args”: [],
“dependsOn”: [
“进入目录”
],
“problemMatcher”: [],
“group”: {
“kind”: “build”,
“isDefault”: true
}
}
]
}
2.2 在ardupilot文件目录下新建一个.vscode的目录,将上述3个文件放在这个目录。

3 使用vscode的任务功能编译飞控固件

使用vscode打开ardupilot文件夹。在TASK RUNNER栏中会出现如下内容。
image.png
依次点击,进入目录,清理工程,配置编译目标为CUAVv5Nano,编译多旋翼固件。就完成了针对雷迅V5 Nano飞控的多旋翼飞控固件的编译。
注意:在编译前,从下图中找到:选择默认配置文件,在弹出框中选择Cygwin作为默认配置文件。
image.png
image.png