vscode搭建stm32开发环境

使用vscode代替keil5作为ARM开发环境

WHY

ARM开发环境众多,比较常用的有keil、IAR、STM32CubeIDE、RT-Thread Studio等等。本人之前使用较多的是KEIL5,原因大概就是大学用的KEILC51对KEIL的界面比较熟悉上手难度低,加上项目基本都是windows环境上的开发,故一直使用KEIL。但KEIL被人诟病的语法补全功能、没有跨平台能力和界面不美观,都是其缺点。(虽然keil stutio正在研发中,预计明年初会出来,界面有了很大的改观。)
vscode这个软件最近很火,因为好用加上大量插件可以优化开发。其跨平台的特性可以在Linux和MAC上都可以运行。

前情提要

准备工作

我们写的C语言怎么变成机器能运行的代码?经历了预编译、编译、汇编、链接四个过程。

软件安装

Visual Studio Code
Visual Studio Code (简称 VSCode / VSC) 是一款免费开源的现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、Git 等特性,支持插件扩展,并针对网页开发和云端应用开发做了优化。软件跨平台支持 Win、Mac 以及 Linux,运行流畅,可谓是微软的良心之作……
STM32Cube
主要生成工程和Makefile文件。
上述两件套玩嵌入式的一般都有。安装也比较方便没有过多下一步,故不再赘述。以下四件套这里也有一份打包好的也可以去官网下载。
MSYS2
其作用是用来继承Windows的环境变量
默认安装msys2,并编辑msys2_shell.cmd修改到和框框中一样。
vscode搭建stm32开发环境_第1张图片

GCC编译器
其主要作用是用来编译我们写的代码。
默认下一步安装,然后需要配置环境变量。若默认安装将以下路径添加到系统环境变量

C:\Program Files (x86)\GNU Arm Embedded Toolchain\10 2021.07\bin

vscode搭建stm32开发环境_第2张图片

win+R打开cmd输入以下命令arm-none-eabi-gcc -v查看是否配置正确,若出现以下提示则配置正确:vscode搭建stm32开发环境_第3张图片
MAKE
make 是一个命令工具,它解释 Makefile 中的规则。在 Makefile 文件中描述了整个工程所有文件的编译顺序、编译规则。
若是默认安装将C:\Program Files (x86)\GnuWin32\bin添加到电脑的环境变量。win+R打开cmd输入以下命令make -v查看是否配置正确,若出现以下提示则配置正确:vscode搭建stm32开发环境_第4张图片

OpenOCD
OpenOCD是一个运行于PC上的开源调试软件,它可以控制包括Stlink等很多JTAG硬件;我们可以将它理解为一种GDB服务程序。
将压缩包解压到硬盘上一个位置X:\xxxxxx\Openocd\OpenOCD-20210729-0.11.0\bin,将解压出来的bin文件夹添加到环境变量。win+R打开cmd输入以下命令opencbd -v查看是否配置正确,若出现以下提示则配置正确:
vscode搭建stm32开发环境_第5张图片

生成测试工程

使用STM32CobeMX工具选择对应工程,配置一个方便测量的io引脚,切记需要把Debug引脚设置成SW模式,否则烧写一次会出现无法调试的问题。
vscode搭建stm32开发环境_第6张图片
工程文件设置成输出Makefile,然后点击Generate code生成工程文件
vscode搭建stm32开发环境_第7张图片

配置vscode

安装插件

1、在vscode的插件中下载安装C/C++,GBD调试插件。

vscode搭建stm32开发环境_第8张图片

配置launch.json

ctrl+shift+p配置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 Arm Embedded Toolchain/10 2021.07/bin/arm-none-eabi-gdb.exe", //交叉编译工具链地址
            "setupCommands": [
        {
            "text": "file E:/STM32test/build/STM32test.elf", //工程使用绝对地址
        },
        {
            "text": "target remote localhost:3333",     //调试器端口号,默认是3333等下可以通过指令看到
        },
        {
            "text": "monitor reset",
        },
        {
            "text": "monitor halt",
        },
        {
            "text": "load" ,                          
        }
    ],
    "preLaunchTask": "build"
}
]
}

添加任务

1、ctrl+shift+p打开命令面板。

2、搜索tasks。

3、点配置任务。
vscode搭建stm32开发环境_第9张图片

4、选择工程文件夹,选择Others
vscode搭建stm32开发环境_第10张图片

然后在打开的tasks.json中复制下图代码

//tasks.json
{
    "version": "2.0.0",
    "tasks": [
         {
            "label": "build",
            "type": "shell",
            "command": "echo compile exeover&make -j4"
        }
    ]
}

配置msys2_shell.cmd为终端

{
    "terminal.integrated.shell.windows":"C:/msys64/msys2_shell.cmd",  //根据实际位置添加
    "terminal.integrated.shellArgs.windows": ["-defterm", "-mingw32", "-no-start", "-here"],
}

添加OcdStm32.cfg文件

在工程目录下和Makefile同级目录下新建一个文件,重命名至OcdStm32.cfg
添加代码如下:

interface stlink-v2 #调试器的名字
transport select swd #接口名,swd或jtag
source [find target/stm32f1x.cfg]  #芯片类型,在\OpenOCD-20210729-0.11.0\share\openocd\scripts\target里找


编译调试

在终端中输入openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg
可以看到打开的端口号为3333,与launch.json中间配置的一致
vscode搭建stm32开发环境_第11张图片

然后按开始按钮就可以调试了
在这里插入图片描述

vscode搭建stm32开发环境_第12张图片
参考资料
https://blog.csdn.net/lin_duo/article/details/96705250

你可能感兴趣的:(ARM,vscode,stm32,gcc/gdb编译调试)