1.文件路径.vscode\tasks.json
在vscode中添加一个tasks.json实现 rt thread的scons编译功能
json
{
"version": "2.0.0",
"tasks": [
{
"label": "scons build",
"type": "shell",
"options": {
"shell": {
"executable": "cmd.exe",
"args": ["/c"]
}
},
"command": "set PATH=C:\\env-windows\\.venv\\Scripts;C:\\env-windows\\tools\\gnu_gcc\\arm_gcc\\mingw\\bin;%PATH% && scons --exec-path=C:\\env-windows\\tools\\gnu_gcc\\arm_gcc\\mingw\\bin",
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": [],
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared",
"showReuseMessage": false
}
},
{
"label": "scons clean",
"type": "shell",
"options": {
"shell": {
"executable": "cmd.exe",
"args": ["/c"]
}
},
"command": "set PATH=C:\\env-windows\\.venv\\Scripts;C:\\env-windows\\tools\\gnu_gcc\\arm_gcc\\mingw\\bin;%PATH% && scons -c --exec-path=C:\\env-windows\\tools\\gnu_gcc\\arm_gcc\\mingw\\bin",
"group": "build",
"problemMatcher": [],
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared",
"showReuseMessage": false
}
}
]
}
2.关于tasks.json文件的解析说明
json
{
"version": "2.0.0",
"tasks": [
// 1. 编译任务
{
"label": "CMake Build",
"type": "cmake",
"command": "build",
"problemMatcher": [],
"group": "build"
},
// 2. 烧录任务
{
"label": "DAP-Link Flash Target",
"type": "shell",
"command": "openocd",
"args": [
"-f",
"interface/cmsis-dap.cfg",
"-f",
"target/stm32f4x.cfg",
"-c",
"program build/Debug/project.elf verify reset exit"
],
"group": {
"kind": "build",
"isDefault": true
},
"presentation": {
"echo": true,
"reveal": "always"
}
},
// 3. 一键:编译 → 烧录
{
"label": "DAP-Link (Build + Flash)",
"icon": { // 安装"tasks button"插件实现,将任务添加到底边栏
"id": "play",
"tooltip": "DAP-Link (Build + Flash)"
},
"dependsOrder": "sequence",
"dependsOn": ["CMake Build", "DAP-Link Flash Target"],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
它是 VSCode 里的 "一键执行脚本 / 命令" 配置文件 ,专门用来帮你编译、烧录、一键运行。
一句话总解释
tasks.json = VSCode 的 "任务快捷键配置"
你写在这里的每一段 {},都是一个可点击 / 可快捷键执行的命令,比如:
- 点一下 → 编译
- 点一下 → 烧录进单片机
- 点一下 → 先编译再自动烧录(最常用)
逐段超级通俗讲解
1. 最外层结构
{
"version": "2.0.0",
"tasks": [ 所有任务都放在这里 ]
}
tasks是一个任务列表- 里面每一个
{}就是一个任务
任务 1:CMake Build(编译代码)
{
"label": "CMake Build", // 任务名字
"type": "cmake", // 类型:使用 CMake 工具
"command": "build", // 执行:编译
"group": "build" // 归类到"构建组"
}
作用:
👉 把你的 C 语言代码 → 编译成 .elf 可执行文件
👉 相当于命令行执行 cmake --build
任务 2:DAP-Link Flash Target(烧录程序)
{
"label": "DAP-Link Flash Target",
"type": "shell", // 在终端里运行命令
"command": "openocd", // 调用烧录工具 OpenOCD
"args": [ ... ] // 传给 OpenOCD 的参数
}
args 里面是什么?(超级关键)
"-f", "interface/cmsis-dap.cfg", // 用 DAP-Link 下载器
"-f", "target/stm32f4x.cfg", // 目标芯片:STM32F4
"-c", "program build/Debug/project.elf verify reset exit"
翻译成人话:
用 DAP-Link 连接 STM32F4
把编译好的 project.elf 烧进去
烧完校验 → 复位芯片 → 退出
这就是 "烧录" 的本质!
任务 3:DAP-Link (Build + Flash)(一键编译 + 烧录)
这是最实用、最常用的任务!
{
"label": "DAP-Link (Build + Flash)",
"dependsOrder": "sequence", // 按顺序执行
"dependsOn": ["CMake Build", "DAP-Link Flash Target"]
}
意思:
- 先执行:
CMake Build→ 编译 - 再执行:
DAP-Link Flash Target→ 烧录
👉 你只需要点一次,就能自动:编译 → 烧录 → 运行!
几个你一定会用到的关键配置
1. group
"group": {
"kind": "build",
"isDefault": true
}
意思:
- 按
Ctrl + Shift + B - 默认直接运行这个任务
2. presentation
"presentation": {
"echo": true,
"reveal": "always"
}
意思:
- 执行任务时自动弹出终端
- 显示日志
3. icon
"icon": { "id": "play" }
需要安装插件 Task Button
作用:
👉 底部状态栏出现一个播放按钮,点一下就编译 + 烧录
整体工作流(你实际使用时)
-
写代码
-
按
Ctrl+Shift+B -
VSCode 自动:
- 调用 CMake 编译
- 调用 OpenOCD 烧录
- 芯片自动重启运行
这就是嵌入式开发最舒服的工作流!