目录
需要用到的工具
软件安装
下载安装 Visual Studio Code
下载安装 STM32Cubemx
下载安装 ARM GCC交叉编译工具链
下载安装 Msys2
下载安装 OpenOCD
下载安装 Make
开发环境配置
msys2_shell.cmd作为VSCode的终端
生成Makefile工程
VsCode下编译工程
安装C/C++插件
添加GDB调试
添加任务
添加OcdStm32.cfg文件
编译下载调试
打开调试服务命令
开始调试
运行效果展示
软件正常安装就行,在安装快要完成的时候,将VSC添加到Path。
软件正常安装就行。需要注意的时候,后期需要将自己使用到的库,添加到STM32Cubemx。
软件正常安装。安装完成后把bin文件夹加到系统环境变量。然后在CMD命令行下输入arm-none-eabi-gcc -v,测试环境ARM GCC是否安装正常。如下图所示
正常安装Msys2。然后让其直接继承Windows的环境变量,在msys2文件夹下有msys2_shell.cmd,用记事本打开,把第16行前的rem去掉,改成set MSYS2_PATH_TYPE=inherit。如下图所示
在硬盘里找个位置,然后将OpenOCD解压到当前目录,即安装完成。然后将bin或者bin-x64目录添加到系统环境变量。运行openocd -v,测试安装是否正常。如下图所示
文件选择Complete package, except sources(如果无法进入下载页面,请从文末给出的网盘地址进行下载)。然后将bin目录加到系统环境变量。运行make -v,测试安装是否正常。如下图所示
双击打开msys2_shell.cmd,进入目录下有Makefile的工程,运行make,看是否编译成功。如下图所示
至此,所需要的软件已经全部安装完成,接下来,进行开发环境的配置。
在VsCode中,使用快捷键ctrl+shift+p搜索setting,找到“首选项:打 开设置(json)”。点击会进入一个文件,把这两行复制进去,只要改第一行msys2_shell.cmd的地址。
{
"terminal.integrated.shell.windows":"C:/msys64/msys2_shell.cmd",
"terminal.integrated.shellArgs.windows": ["-defterm", "-mingw32", "-no-start", "-here"],
}
打开STM32Cubemx,在ToolChain/IDE选项中选择Makefile,生成一个Makefile工程。如下图
将生成的Makefile工程,添加到VsCode中,然后在终端下选择使用msys2_shell.cmd终端。然后输入make编译命令。如下图所示。
在VsCode中打开插件商店,然后输入C/C++,点击安装,安装此插件。如下图所示
如上图
第一步:点击调试按钮。
第二步:点击白色下拉箭头,然后选择GDB/LLDB。
然后在launch.json中直接复制以下代码,有 // 备注的地方,需要修改相关参数。
{
"version": "0.2.0",
"configurations": [
{
"name": "ARM Debug",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/${workspaceRootFolderName}.elf",
"cwd": "${workspaceFolder}",
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "C:/Program Files (x86)/GNU Tools ARM Embedded/5.4 2016q3/bin/arm-none-eabi-gdb.exe", //交叉编译工具链地址
"setupCommands": [
{
"text": "file C:/Users/Administrator/Desktop/666/666/build/666.elf", //工程使用绝对地址
},
{
"text": "target remote localhost:3333", //调试器端口号
},
//以下命令根据不同的单片机可能有变化,例如STM32F1就不行,需要更换命令,STM32F4可以。gdb是可以手动用命令行执行的,这部分就是需执行的命令。百度,谷歌可以找到的。
{
"text": "monitor reset",
},
{
"text": "monitor halt",
},
{
"text": "load" ,
}
],
"preLaunchTask": "build"
}
]
}
第一步:ctrl+shift+p打开命令面板。
第二步:搜索tasks。
第三步:点配置任务。
第四步:选择工程文件夹,选择Others
然后在打开的tasks.json中复制下图代码
//tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "echo compile exeover&make -j4"
}
]
}
在工程目录下(和Makefile文件同一目录)添加OcdStm32.cfg文件。然后配置以下参数。
interface stlink-v2 #调试器的名字,在openocd-0.10.0\scripts\interface里找
transport select swd #接口名,swd或jtag
source [find target/stm32f4x.cfg] #芯片类型,在openocd-0.10.0\scripts\target里找
至此,配置已经全部结束了。
在msys2_shell.cmd命令行下,输入 openocd -f interface/stlink-v2.cfg -f target/stm32f4x.cfg。当出现 stm32f4x.cpu: hardware has 6 breakpoints, 4 watchpoints 说明调试服务已经打开。如下图
当打开调试服务以后,按F5键,就可以开始调试了。 当出现下图以后,再按F5键,代码就跑起来了。
至此,经过三天的配置学习,查阅了许多资料,关于Vsc配置ARM开发环境的工作已经全部完成了。
特别感谢Aakrin、SSulG两老哥提供的帮助。
参考资料:
https://blog.csdn.net/qq_41544116/article/details/89525709
https://www.jianshu.com/p/32efe218e18f
https://www.jianshu.com/p/b9d9008b1921
https://www.jianshu.com/p/4d88dc2e1826
https://blog.csdn.net/zhengyangliu123/article/details/79090601
后期,将继续介绍一些关于VSC开发STM32的小技巧。
本文用到的相关工具:
链接:https://pan.baidu.com/s/1IUOnAzGE8icNCRpXlXdd4Q
提取码:oeqb