【开发环境】
1、stm32cubeMX
2、vscode
3、pyocd
4、编译工具 arm-none-eabi-gcc
【工具准备】
1、下载好stm32cubeMX
2、安装好make
3、安装好pyocd
make、pyocd、arm-none-eabi-gcc确保可以正常访问:

【使用stm32cubeMX生成makefile工程】
打开stm32cubeMX生成基础工程并使用vscode打开。

【make测试】
打开终端,执行make可以看到可以正常编译:

【测试stlink连接】
使用电脑连接开发板,执行pyocd list可以看到已经正确连接到电脑:

【安装Arm插件】

【配置下载任务】

在配置flash任务时,需要用到下载算法文件以及pack包,FLM文件可以在keil的安装好的包中找到:

pack包下载地址为:Arm Keil | Keil STM32U0xx_DFP
将两个文件复制到工程目录下面:

【下载配置】
创建一个任务,配置如下:
{
"version": "2.0.0",
"tasks": [
{
"label": "embedded-debug.flash: Flash Device",
"type": "embedded-debug.flash",
"serialNumber": "${command:device-manager.getSerialNumber}",
"program": "D:/stm32/STM32U031/pro/U031_template/build/U031_template.elf",
"cmsisPack": "D:/stm32/STM32U031/pro/U031_template/Keil.STM32U0xx_DFP.2.0.0.pack",
"deviceName": "STM32U031R8Tx",
"flm": "D:/stm32/STM32U031/pro/U031_template/STM32U0xx_64k.FLM",
"problemMatcher": [],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
运行任务后成功烧写程序:

【调试】
添加debug with stlink,编写配置如下:
{
"version": "0.2.0",
"configurations": [
{
"cwd": "${workspaceFolder}",
"executable": "D:/stm32/STM32U031/pro/U031_template/build/U031_template.elf",
"name": "Debug with ST-Link",
"request": "launch",
"type": "cortex-debug",
"runToEntryPoint": "main",
"showDevDebugOutput": "none",
"servertype": "stlink",
"gdbPath": "C:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/arm-none-eabi-gdb.exe",
},
]
}
运行调试后,可以成功的捕获断点:

为了可以查看寄存器,拷贝.svd到工程根目录下面:

并修改svdFile:

这样就可以查看寄存器的数据了。
【总结】
这次使用stm32cubeMX生成工程,并且使用vscode来编辑、下载、调试工程。