VSCode下STM32開發環境搭建
需要的軟件
make-3.81
https://udomain.dl.sourceforge.net/project/gnuwin32/make/3.81/make-3.81.exe
arm-none-eabi-gcc
https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads https://links.jianshu.com/go?to=https%3A%2F%2Fdeveloper.arm.com%2Fopen- source%2Fgnu-toolchain%2Fgnu-rm%2Fdownloads
STM32CubeMX
https://www.st.com/zh/development-tools/stm32cubemx.html
OpenOCD
https://gnutoolchains.com/arm-eabi/openocd/
https://links.jianshu.com/go?to=https%3A%2F%2Fgnutoolchains.com%2Farm- eabi%2Fopenocd%2F
可下載安裝版文件自動配置環境變量,或將壓縮包解壓后,一般都將解壓出目錄下的“bin”文件夾添加到PATH環境變量即可
檢測環境變量配置是否可用,在命令行里運行:(有信息輸出則配置成功)
gcc -v
arm-none-eabi-gcc -v
make -v
必須的插件
C/C++ for Visual Studio Code
C/C++ Extension Pack
C/C++ Themes
CMake
Cortex-Debug
debug-tracker-vscode
MemoryView
Peripheral Viewer
RTOS Views
STM32CubeMx自動生成makefile文件,無需cmake再生成,若添加c文件h文件可修改makefile即可,在終端中運行make進行編譯:
OpenOCD可用如下命令:
#第一個f參數指定調試器,第二個f參數指定芯片,都到下載得OpenOCD安裝目錄去找對應文件 #注意xxxx.hex與自己的項目生成的build目錄下hex文件對應
openocd -f ./OpenOCD/share/openocd/scripts/interface/cmsis-dap.cfg -f./OpenOCD/share/openocd/scripts/target/stm32f1x.cfg -c “program build/STM32F103CB.hex verify reset exit”
配置在線調試
注意項目工程不能有中文目錄,否則運行 openocd 莫名失敗,運行調試需要在編譯、下載完成后
菜單欄中選擇運行和調試,點擊 “創建 launch.json 文件”,選擇 “Cortex Debug”
再添加具體的OpenOCD調試(添加配置)
需要修改三個參數信息:
- build目錄下生成的 xxx.elf 文件名要匹配
- 調試器配置文件(在OpenOCD解壓縮后的目錄下)
- 芯片型號配置文件(在OpenOCD解壓縮后的目錄下)
- SVD 文件路徑(仿真寄存器描述)獲取方式:在Keil.STM32Fxxx_DFP.x.x.x.pack 文件解壓縮后的目錄 “CMSIS/SVD”
參考配置信息如下:
{
// 使用 IntelliSense 了解相關屬性。
// 懸停以查看現有屬性的描述。
// 欲了解更多信息,請訪問: https://go.microsoft.com/fwlink/?linkid=830387
“version”: “0.2.0”,
“configurations”: [
{
“cwd”: “${workspaceRoot}”,
“executable”: “./build/STM32F103CB.elf”,
“name”: “Debug with OpenOCD”,
“request”: “launch”,
“type”: “cortex-debug”,
“servertype”: “openocd”,
“configFiles”: [
“./OpenOCD/share/openocd/scripts/interface/cmsis-dap.cfg”,
“./OpenOCD/share/openocd/scripts/target/stm32f1x.cfg”
],
“searchDir”: [],
“runToEntryPoint”: “main”,
“showDevDebugOutput”: “none”,
“svdFile”: “./SVD/STM32F103xx.svd”
}
]
}
點擊運行和調試菜單欄,選擇調試 “Debug with OpenOCD” 即可在線調試: