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