Debian13下使用 Vim + Vimspector + ST-LINK v2.1 调试 STM32F103 指南
1. 硬件准备与连接
1.1 所需硬件
- STM32F103C8T6 最小系统板
- ST-LINK v2.1 调试器
- 连接线(杜邦线)
1.2 硬件连接
ST-LINK v2.1 ↔ STM32F103C8T6 连接方式:
ST-LINK v2.1 引脚 | STM32F103C8T6 引脚 | 功能说明 |
---|---|---|
SWDIO | PA13 | 数据线 |
SWCLK | PA14 | 时钟线 |
GND | GND | 共地 |
3.3V (可选) | 3.3V (可选) | 供电 |
连接注意事项:
- 确保目标板的 BOOT0 引脚已接地(低电平)
- 如目标板已有独立供电,可不连接 3.3V 引脚以避免电源冲突
- 使用短而优质的连接线,确保连接牢固
2. 软件环境安装与配置
2.1 安装编译工具链
sudo apt update
sudo apt install build-essential git
sudo apt install arm-none-eabi-gcc arm-none-eabi-binutils arm-none-eabi-newlib
2.2 安装调试工具
sudo apt install gdb-multiarch openocd
2.3 安装配置 Vimspector
-
在
~/.vimrc
中添加插件配置(以 vim-plug 为例):call plug#begin('~/.vim/plugged') Plug 'puremourning/vimspector' call plug#end()
-
安装插件:
:PlugInstall
-
安装调试适配器:
:VimspectorInstall --enable-c
或使用 Python 脚本安装:
# 进入 vimspector 目录,通常在你的插件管理路径下 cd ~/.vim/plugged/vimspector # 路径请根据实际情况修改 ./install_gadget.py --enable-c
-
配置 Vimspector 快捷键(添加到
~/.vimrc
):nmap <Leader>dd <Plug>VimspectorContinuenmap <Leader>dx <Plug>VimspectorStopnmap <Leader>dR <Plug>VimspectorRestartnmap <Leader>dp <Plug>VimspectorPausenmap <Leader>db <Plug>VimspectorToggleBreakpointnmap <Leader>dc <Plug>VimspectorToggleConditionalBreakpointnmap <Leader>dn <Plug>VimspectorStepOvernmap <Leader>di <Plug>VimspectorStepIntonmap <Leader>do <Plug>VimspectorStepOutnmap <Leader>dr <Plug>VimspectorRunToCursor
3. Vimspector 调试配置
3.1 创建 .vimspector.json 文件
在项目根目录创建 .vimspector.json
文件:
{"configurations": {"Launch STM32": {"adapter": "vscode-cpptools","configuration": {"request": "launch","type": "cppdbg","program": "${workspaceRoot}/build/software.elf", // 确保此路径正确"cwd": "${workspaceRoot}","targetArchitecture": "arm","MIMode": "gdb","MIDebuggerPath": "gdb-multiarch","stopOnEntry": true,"stopAtConnect": true,"serverAddress": "localhost","serverPort": 3333,"serverType": "openocd","setupCommands": [{"description": "Specify executable file", // 明确指定可执行文件"text": "file ${workspaceRoot}/build/software.elf","ignoreFailures": false},{"description": "Connect to OpenOCD","text": "target extended-remote :3333"},{"description": "Reset and halt","text": "monitor reset halt","ignoreFailures": true},{"description": "Load program","text": "load","ignoreFailures": false}],"launchCompleteCommand": "exec-continue"}}}
}
3.2 工作区路径说明
${workspaceRoot}
表示 Vim 的当前工作目录- 使用
:pwd
命令可查看当前工作目录 - 使用
:cd /path/to/project
可切换工作目录
4. 调试流程
4.1 启动 OpenOCD
打开终端,运行以下命令:
sudo openocd -f interface/stlink.cfg -f target/stm32f1x.cfg
4.2 启动 Vim 并打开项目
cd /path/to/project
vim src/main.c
4.3 启动调试会话
在 Vim 中执行:
<Leader>dd