Vscode+gcc-arm+openocd搭建STM32开发环境

1 简介

尝试使用Vscode搭建STM32开发环境,自己记录一下详细的配置过程

2 工具下载

设计到的相关软件以及资源包括Vscode软件、STM32CubeMX、mingw64以及openocd,相应的软件介绍以及下载链接如下:

  • Vscode软件: 宇宙第一编辑器,开源,插件丰富
  • CubeMx: 初始化代码生产器,HAL库
  • mingw64: 因为需要使用make、rm等命令,所以需要资源
  • gcc-arm-none-eabi: 因为我们要在PC机上编译出可以运行在ARM上的程序,使用gcc编译出的是在PC上运行的程序,所以我们要使用gcc-arm-none-eabi进行交叉编译
  • openOCD: 与各种调试器硬件一起使用,通过调试接口(如 JTAG、SWD 等)与目标设备(例如微控制器)通信
    具体的安装过程在此不展开,网上有很多相关教程。
    安装完成后使用命令行进行检查,确认环境配置好
openOCD -
arm-none-eabi-gcc -v
gcc -v

这里有一个需要注意就是,因为会使用到make命令,所以需要将mingw中bin目录的mingw-32-make改为make,然后使用命令检查

make -v
GNU Make 4.2.1
Built for x86_64-w64-mingw32
Copyright (C) 1988-2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

所有配置正确后,会出现对应的版本信息

3 Vscode插件安装

  • Cortex-Debug
    在这里插入图片描述
  • C/C++ 插件
    在这里插入图片描述

4 使用STM32Cube MX 生成配置文件

这里注意,配置完成后生产工程文件,需要选择makefile文件
在这里插入图片描述
使用Vscode打开文件夹,主要内容保留
在这里插入图片描述

5 复制openocd文件

根据板子对应的芯片型号以及使用的调试器,将openocd中的相关文件复制到makefile同一路径,本文中使用的开发板芯片为stm32f4,调试下载器为daplink,复制相关配置如下

D:\work\tool\OpenOCD-20211118-0.11.0\share\openocd\scripts\interface\cmsis-dap.cfg
D:\work\tool\OpenOCD-20211118-0.11.0\share\openocd\scripts\target\stm32f4x.cfg

6 配置VS Code 完成开发调试

1. 配置C/C++ 环境

这一步主要是消除程序文件中的波浪线提示,需要添加对应的头文件索引,按下ctrl+shift+P进入命令配置界面,选择C/C++ UI配置
在这里插入图片描述
相应配置如下:
在这里插入图片描述
在这里插入图片描述

2 配置任务

在这里插入图片描述
新增一个任务配置,任务配置内容如下:

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            "command": "make",
            "args": [],
            "group": "build"
        },
        {
            "label": "download",
            "type": "shell",
            "command": "openocd",
            "args": [
                "-f",
                "cmsis-dap.cfg",
                "-f",
                "stm32f4x.cfg",
                "-c",
                "program build/407_Prj.elf verify reset exit"
            ],
            "group": "build"
        }
    ]
}

这个任务文件是用于配置 Visual Studio Code 中的任务,其中包含了两个主要任务:一个用于编译项目,另一个用于将程序下载到目标设备中进行调试。第一个任务使用 make 命令编译项目,而第二个任务使用 openocd 命令将编译后的 ELF 文件加载到目标设备中。

3. 配置调试参数

在这里插入图片描述

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "cwd": "${workspaceRoot}",
            "executable": "./build/407_Prj.elf",
            "name": "Debug Microcontroller",
            "request": "launch",
            "type": "cortex-debug",
            "servertype": "openocd",
            "configFiles": [
                "cmsis-dap.cfg",
                "stm32f4x.cfg"
            ],
            "showDevDebugOutput": "none"
        }
    ]
}

4. 修改Makefile文件

由于window并不支持-rm -fR命令,所以需要将Makefile文件中的clean命令做相应修改

#	-rm -fR $(BUILD_DIR)
   -del /q $(BUILD_DIR) 

编译下载

至此完成了开发环境的配置工作,可以进行编译和调试,但是还有一些代做的,比如串口重定向,浮点数等
在这里插入图片描述

在这里插入图片描述

参考资料

  1. https://github.com/c1emon/program-stm32-with-vscode
  2. https://blog.csdn.net/pyt1234567890/article/details/122522700
  3. https://mp.weixin.qq.com/s/XW6vxmU5ibRRSS8Zl4GotA
posted @ 2024-04-07 20:31  Phoenix-Tree  阅读(550)  评论(0编辑  收藏  举报