记录一次在 win10 下使用 vscode 搭建 stm32 调试环境 (基于 stm32CubeMX)

一、首先需要有以下 3 个环境,均使用最新版本,并设置环境变量

arm-none-eabi-gcc
这里也说一点,交叉编译器请安装最新版本的,我因为要用到 ASR6601 开发,编译器版本比较旧,虽然编译烧录没有问题,但是 debug 时却不能成功,因为 cortex-debug 最新版本支持的 arm-none-eabi-gdb 调试器需要高于 9.2,所以如果你的版本比较老,需要将 cortex-debug 插件回退到可能一年前才能支持调试

openocd
这里也要说一点,openocd 无法直接识别到 jlink 驱动,强烈建议下载 UsbDriverTool 来将 J-Link driver 切换成 winUSB 设备才能正确识别到 (因为这样子也可以切换回去,方便你使用 keil 或者 IAR 之类的)

make for windows
这里说一点,minGW 的 make 工具很久没有更新了,另外在 vscode 下调试的 powershell 终端是无法识别 rm -fR build 这条命令的,建议安装 MSYS2 来安装 make 工具,这样可以识别到 rm -fR 命令或者其他命令
具体步骤如下:

安装 MSYS2 后首先切换更新源,USTC 的软件源
sed -i “s#mirror.msys2.org/#mirrors.ustc.edu.cn/msys2/#g” /etc/pacman.d/mirrorlist*

刷新软件包数据
pacman -Sy

执行 pacman -S make 安装 make

make 工具安装好后找到安装的路径并添加到环境变量 PATH 中去
二、安装以下插件

C/C++
Cortex-Debug
stm32-for-vscode

三、步骤
1)将 cubemx 下生成的 MakeFile 版本的项目文件夹用 vscode 打开,ctrl+shift+p 命令面板,再输入 stm32,点击 STM32:build STM32 project,成功之后就可以看到.vscode 文件夹下生成的四个 JSON 文件,可以自己去看看这个 4 个文件的用处,补充一点

2)点击左侧菜单栏的插件 STM32 FOR VSCODE 就可以看到有六个功能菜单了(simplenote 不支持导入图片,我放不了图~~)
Build
Clean build
Flash STM32
Debug STM32
Change programmer
run CubeIDE importer

3)可以测试下烧录和 Debug 功能,目前我在 STM32L051 和 STM32F103 上都测试过没有问题
首先看到下面生成的 openocd.cfg 文件,这里可以根据你的烧录器来修改脚本指令

Standard will be the stlink interface as this is the standard for STM32 dev boards

选择调试器为 jlink

source [find interface/jlink.cfg]

选择接口为 SWD

transport select swd

The target MCU. This should match your board

选择目标芯片

source [find target/stm32f1x.cfg]

4)修改完成后就可以进行 Debug 了,大概就这些,如果有愿意折腾的可以一起研究研究

之后打算在 openSUSE Leap 15.5 KDE 上使用 vscode 来搭建 stm32 开发环境,有经验的大佬可以传授一下

2赞

补充:5) 我在 openSUSE Leap 15.5 KDE 下也测试过 stm32l051k8ux 和 stm32f103 以及 stm32l151,使用 jlink 调试时,stm32L051 无法下载 elf 文件,但是换了 stlink 之后就可以正常下载了,另外两款和 windows 下基本一致