如何使用VSCode和VS2017实现编译调试STM32程序

  

这篇文章主要为大家展示了如何使用VSCode和VS2017实现编译调试STM32程序,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。

近两年,微软越来越拥抱开源支持跨平台,win10搭载Linux子系统,开源VSCode作为跨平台编辑器,VS2017官方支持了Linux和嵌入式开发功能。

ST也是,近两年开发的软件工具基本都是跨平台(基于Java)的,比如STM32CubeMX,MCUFinder,STM32CubeProgrammer等。17年年底收购了truestudio的开发公司-Atollic。这个公司的IDE就是基于Eclipse使用GNU套装的。

官方都支持了,那我们有必要了解一下。要是好用,说不定就可以淘汰老旧的Keil了。

VSCode或者VS2017。

GNU ARM Embedded Toolchain。JLink或者STLink。

STM32CubeMX。这个一般开发STM32的都会装。

编译就不说了,有makefile,有gcc就可以了。

调试的话,整体的流程图如下:

如何使用VSCode和VS2017实现编译调试STM32程序

  • 前端 。这里VSCode和VS2017就是封装了GDB的图形前端,这样我们使用GDB调试的时候就不需要再在命令行窗口敲指令了。
  • GDB Client。arm-none-eabi-gdb
  • GDB Server。JLink官方SEGGER提供了一个GDB server。STLink在github也有一个开源的项目。这里演示使用JLink。如果不嫌麻烦的话,也可以使用openOCD。
  • 调试器这里使用JLink,接口使用SWD。
  • 目标板芯片型号为STM32F103RCT6

这里使用VSCode举例,但是VS2017实际上也是支持的,可以参考官方博客。这里本人做了一下尝试,发现官方还未完善。文档有多处错误,所以暂不考虑。

如何使用VSCode和VS2017实现编译调试STM32程序

VSCode基本配置

这个现代化的编辑器,好处就不多说了,对比keil谁用谁知道,网上也能搜到一堆的关于它的介绍。

必要插件

C/C++为必要插件,否则无法调试。

建议安装插件

  • crustify。用来格式化代码, shift+alt+f,非常方便。缺点是代码中有Unicode可能会导致乱码,然后配置文件有点多。
  • Bracket Pair Colorizer。不同颜色高亮显示匹配括号,爱护视力必备。
  • C/C++ Clang Command Adapter。用来补全和诊断,需要同时安装Clang,参考官方文档。

安装完成后,目录下应该有下列文件

如何使用VSCode和VS2017实现编译调试STM32程序

下载后,安装或者解压即可。目录下有一个bin的文件夹,可以看到有下列文件:

如何使用VSCode和VS2017实现编译调试STM32程序

安装完成后,将bin文件夹路径添加到环境变量。不过这不是必要的,只是方便在命令行中使用,在vscode中使用是不需要的。

这里需要注意,cube的版本至少要是4.23.0。否则没有生成makefile的选项,这里使用4.24.0。在配置完成后,设置选项需要选择Makefile,如下图:

如何使用VSCode和VS2017实现编译调试STM32程序

点击生成后文件目录如下:

如何使用VSCode和VS2017实现编译调试STM32程序

如何使用VSCode和VS2017实现编译调试STM32程序

在main.c中添加两行闪灯的代码:

,(1)
  {
  HAL_GPIO_TogglePin (LED_GPIO_Port LED_Pin);
  HAL_Delay (500);
  计数器+ +;/*用户代码结束*//*用户代码开始3 */}

至此,整个工程就搭建好了。

官方生成了makefile,那么只要执行做就可以了.makefile的语法,网上可以找到很多的教程,这里不细说。

就目前的工程,想要让成功,改一句话即可使用,即指定gcc的路径。我的路径如下:

<代码> BINPATH=D:/GNU_ARM_TOOLS/2016 q3_version_5_6/bin/<代码>

修改后,打开命令行,输入使即可。如果,提示使不是内部或者外部命令,那你还需要安装GNU,这个可自行搜索下载。

如果配置成功,应该能看到下面的画面:

如何使用VSCode和VS2017实现编译调试STM32程序

如何使用VSCode和VS2017实现编译调试STM32程序