使用Vscode 编译 开发 调试 STM32单片机 VScode+openocd+STM32CubeMX+GDB

为什么记录这篇文章

本文基于使用windows10 系统,计划在VScode上集成开发、编译、烧录和调试一系列功能。

优快云以及网络上有很多介绍移植STM32到VScode 环境开发调试的文章,但是没有能够找到一篇能够完整的指导自己完成这个工作。所以这里完整记录自己的配置和使用过程。

由于现在软件版本和系统环境迭代变化很快,本人对stm32开发环境不够熟悉,所以一边学习一边操作,亲自做一遍,把步骤和遇到的问题记录下来,供自己日后查阅,也能方便有需要的朋友参考。

环境准备

软件及工具下载

点击软件名称进入官网下载链接,本文使用软件皆为windows平台

  1. STM32CubeMX 用于生成stm32的工程模板和makefile文件;
  2. Java SE Runtime Environment 8 STM32CubeMX运行依赖环境,安装STM32CubeMX的前置;
  3. Visual Studio Code 强大的IDE工具,支持多种开发语言,具有丰富的插件。
  4. MINGW 看了很多文章都没有说明这个软件的目的,其实是提供了在windows系统中的make 命令,用来解析编译STM32CubeMX生成的makefile,而它同时安装的一些toolchain其实并没有使用到,容易造成误解。所以这里也可以直接换成make for windows
  5. GNU Arm Embedded Toolchain windows版本的交叉编译工具链包括编译器(gcc),调试器(gdb),链接器(ld)和其它工具。建议下载安装版本,注意记录安装路径,后面需要用到。
  6. OpenOCD (Open On-Chip Debugger)开源的调试器,适配市面上大部分的调试器和mcu单片机芯片。本例中主要作为stm32的烧录工具和开启GDB server使用。

软件安装

  1. STM32CubeMX
    需要注意的是安装stm32需要依赖于JRE环境,在上面的地址提前下载安装JRE最新版本即可。
    具体安装步骤可以参考 STM32CubeMX介绍、下载与安装

  2. VScode
    vscode安装完成后,需要另外安装上插件才能完成本文的工作(ARM和C/C++),同时也有一些推荐的插件建议一起安装上。在vscode中按下ctrlshiftx进入下载插件界面。

  • ARM:使的ARM汇编代码获得语法高亮,这里主要用在启动文件上。
  • C/C++:使VScode获得对C/C++语言的支持,包括智能提示,调试等
  • Intellisense:提供C++智能感知功能。
  • Cortex-Debug:对ARM Cortex-M内核的单片机提供调试支持。
  • Cortex-Debug: Device Support Pack -STM32F1(F4,L1):这三个芯片包分别对Cortex-Debug提供三款芯片的设备支持。
  • GBKtoUTF8:因为平时的Keil的STM32工程文件大部分都是GB2312编码的,这个扩展可以自动将GB2312
  • 转换为UTF-8编码。 LLVM :代码补全
  1. MINGW
    这个软件有个需要注意的地方,虽然我们需要mingw提供的make命令,但是这个软件并不提供make(狗头,好多文章都不提及这一点)。mingw提供的命令是mingw32-make.exe。
    我们需要进入安装目录的bin目录下,复制mingw32-make.exe重命名为make.exe。
    当然你可以不用重命名,然后再后面的vscode json脚本中需要make的位置填入mingw32-make。
    在这里插入图片描述

  2. openocd
    运行opeocd需要指定interface和target下的一些配置文件,这和oopenocd.exe 不在同一个目录下面。所以再运行时候会报错 找不到对应的配置文件。
    这里我直接将xx\OpenOCD-20201228-0.10.0\bin\中的命令全部copy到\OpenOCD-20201228-0.10.0\share\openocd\scripts 下,并将后者路径添加了系统变量中。
    其实后面我们在vscode中task json中调用的时候依然找不到配置文件,需要手动将使用到的配置文件拷贝到项目文件夹中。不过这里为了我们能在cmd.exe或者power shell中直接使用,建议这么做。

  3. GNU Arm Embedded Toolchain
    这里我并没有将arm toolchain 的命令加入系统变量中,原因是exe安装过程中会自己添加系统变量。
    对于vscode,在makefile中会指定使用arm toolchain,而make的环境在vode code 的properties 中指定了,这个过程中没有涉及到windows的系统变量,足以找到。

  4. 添加系统变量
    其他软件直接安装即可,需要注意的是记录下软件的安装目录。
    其中openocd和MINGW需要将可执行文件目录添加到系统的环境变量中。
    在这里插入图片描述

  5. 环境验证
    在cmd终端或者power shell或者你又git bash中分别运行如下命令,可以正常打印版本信息没有报错。

arm-none-eabi-gcc -v
openocd -v
make -v
在这里插入图片描述
恭喜,环境安装完成,下面进入vscode的集成环境。

VScode功能搭建

使用STM32CubeMX生成带有makefile的工程

使用stm32CubeMX的最初目的是他可以生成makefile,不过使用下来发现,这个软件对于各种mcu 引脚以及时钟的配置非常人性化。
安装完成后,打开STM32CubeMX选择对应芯片类型,软件会自动下载所选择芯片的支持包。在列表中选中芯片,封装号要一致。
创建工程(本文重点是开发环境,若想了解具体了解,请看STM32CubeMX使

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值