一、准备
(一)软件准备
2、Visual Studio Code:https://code.visualstudio.com
3、OpenOCD:
win: Download OpenOCD for Windows
mac: sudo brew install open-ocd
linux: sudo apt-get install openocd
4、arm-none-eabi-gcc(需要记住安装路径):
win:需要安装WinGW
Downloads | GNU Arm Embedded Toolchain Downloads – Arm Developer
mac:brew install --cask gcc-arm-embedded
linux:sudo apt-get install arm-none-eabi-gcc(没测试)
检查软件是否安装正确,在命令行中执行下列三行代码:
gcc -v
arm-none-eabi-gcc -v
openocd -v
如果有版本信息显示则表示安装完成。
在win中需要将OpenOCD、arm-none-eabi-gcc、MinGW添加到系统环境变量中。
(二)、VScode插件安装
1、Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code:汉化
2、Cortex-Debug:用来调试STM32
3、C/C++
4、C/C++ Extension Pack
二、开始构建项目
(一)在STM32CubeMX生成代码
正常在STM32CubeMX中配置项目,在Project Manager页面中的Project中的Toolchain/IDE选择Makefile:
在命令行中make一下构建项目,如果全面的软件安装没问题是可以make成功的:
成功会在项目顶层目录生成一个build文件夹,其中有一个[项目名].elf的文件
(二)修改Makefile
1、ELF_FILE := build/$(TARGET).elf
2、下载配置.cfg文件
创建一个xxx.cfg,自行参考网上的配置,我的是这样的。
3、烧录配置
在Makefile添加目标flash:
#######################################
# openocd update
#######################################
flash:
make
openocd -f STM32F407ZGTx.cfg -c "program $(ELF_FILE) verify reset exit"
使用 make flash就可以通过st-link烧录程序了。
4、添加自己的c源文件和头文件目录
c源文件:在Makefile中的C sources后添加自己的c源文件
头文件目录:在Makefile中的C includes后添加自己的头文件目录
三、处理vscode大面积红色波浪线报错
找到任意一处还是波浪线报错位置,选择快速修复->编辑"includePath"设置;或者直接顶部搜索框搜索C/C++配置:
1、编译器路径
选择arm-none-eabi-gcc的路径
2、包含路径
${workspaceFolder}/**
3、定义
找到Makefile中的C_DEFS,不需要每行前面的“-D”
至此便可以正常编译烧录代码,且没有红色波浪线,可以正常代码提示了
4、通过修改c_cpp_propertier.json的方式
{
"configurations": [
{
"name": "Mac",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"DUSE_HAL_DRIVER",
"STM32F407xx"
],
"cStandard": "c17",
"cppStandard": "c++17",
"compilerPath": "/Applications/ArmGNUToolchain/14.2.rel1/arm-none-eabi/bin/arm-none-eabi-gcc"
}
],
"version": 4
}
编译: make
下载:make flash
清除 :make clean
四、调试配置
配置launch.json文件夹
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Cortex Debug",
"cwd": "${workspaceFolder}",
"executable": "build/demoproject.elf",
"request": "launch",
"type": "cortex-debug",
"runToEntryPoint": "main",
"svdFile": "STM32F407.svd",
"servertype": "openocd",
"configFiles": [
"STM32F407ZGTx.cfg"
]
}
]
}
需要修改的配置:
1、"executable": "build/auv.elf" :改成自己生成的xxx.elf文件
2、"svdFile": "STM32F407.svd" :在ST官网找到自己对应芯片的SVD文件并保存项目顶层文件夹中,并修改为自己的SVD文件名
3、"configFiles": [
"STM32F407ZGTx.cfg"
]前面烧录配置使得cfg文件
至此,便可以在vscode中调试STM32。环境搭建完成!