怎么用vscode编译stm32源码
时间: 2023-06-16 12:06:59 浏览: 69
在使用 VSCode 编译 STM32 源码之前,需要先安装以下工具:
1. ARM GCC 编译器:用于编译 STM32 项目的程序代码。
2. ST-Link 软件:用于将编译好的程序代码下载到 STM32 开发板上。
3. STM32CubeMX:用于生成 STM32 项目的代码框架和初始化代码。
接下来,按照以下步骤进行操作:
1. 安装 C/C++ 扩展程序:在 VSCode 中搜索并安装 "C/C++" 扩展程序,以便在 VSCode 中编写和调试 C/C++ 代码。
2. 配置编译器路径:打开 VSCode,进入 "File" -> "Preferences" -> "Settings",在搜索框中输入 "C_Cpp.default.compilerPath",然后将 ARM GCC 编译器的路径添加进去。
3. 配置调试器路径:同样在设置中搜索 "C_Cpp.default.debuggerPath",将 ST-Link 调试器的路径添加进去。
4. 创建 STM32 项目:使用 STM32CubeMX 创建一个 STM32 项目,并生成代码框架和初始化代码。
5. 打开项目:打开 VSCode,进入 "File" -> "Open Folder",选择 STM32 项目所在的文件夹。
6. 创建 build 目录:在项目文件夹中创建一个 build 文件夹。
7. 修改 launch.json 文件:在 VSCode 中打开项目文件夹,并在 ".vscode" 文件夹中创建一个名为 "launch.json" 的文件。将以下代码添加到文件中:
```
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug STM32",
"type": "cortex-debug",
"request": "launch",
"cwd": "${workspaceFolder}",
"executable": "${workspaceFolder}/build/${workspaceRootFolderName}.elf",
"device": "stlink",
"svdFile": "${workspaceRoot}/STM32F103C8.svd",
"servertype": "stlink",
"configFiles": [
"${workspaceRoot}/.gdbinit"
]
}
]
}
```
其中,"executable" 指定了编译生成的 ELF 文件的路径,"svdFile" 指定了 STM32 芯片的 SVD 文件路径,用于在调试时显示寄存器的值。
8. 修改 tasks.json 文件:在 ".vscode" 文件夹中创建一个名为 "tasks.json" 的文件,并将以下代码添加到文件中:
```
{
"version": "2.0.0",
"tasks": [
{
"label": "build STM32",
"type": "shell",
"command": "make -C ${workspaceFolder}/build",
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": {
"owner": "cpp",
"fileLocation": [
"relative",
"${workspaceFolder}/build"
],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
}
]
}
```
其中,"command" 指定了编译 STM32 项目的命令。
9. 编译和调试:在 VSCode 中打开项目文件夹,按下 "Ctrl + Shift + B" 编译项目。编译完成后,按下 "F5" 开始调试。
以上就是使用 VSCode 编译 STM32 源码的步骤。需要注意的是,在编译和调试之前,需要在 STM32CubeMX 中正确配置项目的参数和引脚映射关系。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)