1 简介
尝试使用Vscode搭建STM32开发环境,自己记录一下详细的配置过程
2 工具下载
设计到的相关软件以及资源包括Vscode软件、STM32CubeMX、mingw64以及openocd,相应的软件介绍以及下载链接如下:
- Vscode软件: 宇宙第一编辑器,开源,插件丰富
- CubeMx: 初始化代码生产器,HAL库
- mingw64: 因为需要使用make、rm等命令,所以需要资源
- gcc-arm-none-eabi: 因为我们要在PC机上编译出可以运行在ARM上的程序,使用gcc编译出的是在PC上运行的程序,所以我们要使用gcc-arm-none-eabi进行交叉编译
- openOCD: 与各种调试器硬件一起使用,通过调试接口(如 JTAG、SWD 等)与目标设备(例如微控制器)通信
具体的安装过程在此不展开,网上有很多相关教程。
安装完成后使用命令行进行检查,确认环境配置好
openOCD -
arm-none-eabi-gcc -v
gcc -v
这里有一个需要注意就是,因为会使用到make命令,所以需要将mingw中bin目录的mingw-32-make改为make,然后使用命令检查
make -v
GNU Make 4.2.1
Built for x86_64-w64-mingw32
Copyright (C) 1988-2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
所有配置正确后,会出现对应的版本信息
3 Vscode插件安装
- Cortex-Debug
- C/C++ 插件
4 使用STM32Cube MX 生成配置文件
这里注意,配置完成后生产工程文件,需要选择makefile文件
使用Vscode打开文件夹,主要内容保留
5 复制openocd文件
根据板子对应的芯片型号以及使用的调试器,将openocd中的相关文件复制到makefile同一路径,本文中使用的开发板芯片为stm32f4,调试下载器为daplink,复制相关配置如下
D:\work\tool\OpenOCD-20211118-0.11.0\share\openocd\scripts\interface\cmsis-dap.cfg
D:\work\tool\OpenOCD-20211118-0.11.0\share\openocd\scripts\target\stm32f4x.cfg
6 配置VS Code 完成开发调试
1. 配置C/C++ 环境
这一步主要是消除程序文件中的波浪线提示,需要添加对应的头文件索引,按下ctrl+shift+P进入命令配置界面,选择C/C++ UI配置
相应配置如下:
2 配置任务
新增一个任务配置,任务配置内容如下:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "make",
"args": [],
"group": "build"
},
{
"label": "download",
"type": "shell",
"command": "openocd",
"args": [
"-f",
"cmsis-dap.cfg",
"-f",
"stm32f4x.cfg",
"-c",
"program build/407_Prj.elf verify reset exit"
],
"group": "build"
}
]
}
这个任务文件是用于配置 Visual Studio Code 中的任务,其中包含了两个主要任务:一个用于编译项目,另一个用于将程序下载到目标设备中进行调试。第一个任务使用 make 命令编译项目,而第二个任务使用 openocd 命令将编译后的 ELF 文件加载到目标设备中。
3. 配置调试参数
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"cwd": "${workspaceRoot}",
"executable": "./build/407_Prj.elf",
"name": "Debug Microcontroller",
"request": "launch",
"type": "cortex-debug",
"servertype": "openocd",
"configFiles": [
"cmsis-dap.cfg",
"stm32f4x.cfg"
],
"showDevDebugOutput": "none"
}
]
}
4. 修改Makefile文件
由于window并不支持-rm -fR命令,所以需要将Makefile文件中的clean命令做相应修改
# -rm -fR $(BUILD_DIR)
-del /q $(BUILD_DIR)
编译下载
至此完成了开发环境的配置工作,可以进行编译和调试,但是还有一些代做的,比如串口重定向,浮点数等
参考资料
- https://github.com/c1emon/program-stm32-with-vscode
- https://blog.csdn.net/pyt1234567890/article/details/122522700
- https://mp.weixin.qq.com/s/XW6vxmU5ibRRSS8Zl4GotA