[VSCODE]基于EIDE插件搭建vscode下的STM32单片机开发环境

请注意本文撰写时间(2022-1-6),目前EIDE插件一直在跟新中,其内容可能会于本文有所出入,请以官方手册为主

EIDE(全称Embedded IDE)是国内的一个大佬开发的vscode插件,本人用下来体验非常好,因此在这里分享给大家,这是这个插件的官方论坛官方手册
本篇文章只会提一些基本的使用,而且也只是针对基于有CUBEMX的STM32,如果想要开发其他单片机详细的还是得参考手册

本篇文章是给有基础的人看的,vscode的基本使用在这里不会详细展开,一些地方会讲的比较粗略,如果有不懂的概念请自行查找资料

如果你不喜欢vscode而是喜欢JetBrain家的Clion,也可以参考大佬的这篇文章

那么我们正式开始

一、安装GNU Arm Embedded Toolchain

去官网找
这个有手就行

二、安装vscode

这也是有手就行

注意点是安装的时候记得把下面几个选项打开
image
确保自己的对着文件夹空白处的右击菜单里面有通过code打开这个选项就行

三、安装EIDE插件和一些辅助性插件

打开vscode,在左边的Extensions栏(或者按Ctrl+Shift+X)里面可以搜索你想要的插件并安装
搜索EIDE,找到我们的主角,然后Install即可

image
我这里是因为已经安装过了所以没有Install的按钮

其他的一些插件:

  • C/C++
  • C++ Intellisense
  • Visual Studio IntelliCode
  • Cortex-Debug 在debug的时候会用到
  • Git Graph 和vscode自带的git支持一起用会很方便
  • LinkerScript 提供链接脚本语法高亮
  • BracketPair Colorizer2 彩虹括号,用了都说好
  • 一些主题配色和图标什么的,可以网上看看推荐,我是喜欢默认黑
  • background-cover 给你的vscode配上背景图片,可以把你的老婆当背景什么的

四、EIDE插件的初始配置以及了解项目结构

4.1 插件配置

4.1.1 配置工具链

如果EIDE插件安装成功的话vscode会在左侧栏多出一个选项:
image
点进去会发现一共有上下两栏,我们选择下面的OPERATIONS,然后点击Set ToolChain Path,在弹出的选项中选择:image
接着选择offline,然后选择你的armgcc工具链安装路径即可,设置成功之后你再次打开这个选项菜单他就会和上面一样打勾

4.1.2 配置烧录器

我这里是用的Jlink做烧录器,如果要用其他的烧录器自己想办法去~
点击Open plug-in Settings,进入插件配置页,找到Jlink,填入JLink的安装路径即可

4.2 了解项目结构

下文摘自官方文档

项目文件

  • .eide eide项目文件夹,存放eide项目信息,日志等文件
  • .vscodevscode配置文件目录
  • build编译默认输出目录,可以在项目的设置中修改
  • pack芯片支持包的安装位置 本篇教程不会涉及
  • *.code-workspacevscode工作区文件,这对于eide项目是必须的

用户文件
即项目文件以外的文件或文件夹

五、正式开始搭建工程

5.1 EIDE新建工程

打开vscode,进入左边EIDE一栏

选择下面OPERATIONS栏里的New Project,接着选择Empty Project,32是cortex内核的所以选择Cortex-M Project

然后会让你选择文件夹,选择你平时放代码的文件夹即可,之后在右下角弹出来的窗口中确认,vscode就会自动进入该工作区

因为我们通过STM32CUBEMX生成代码所以这里把自动生成的src文件夹删除

5.2 用STM32CUBEMX生成代码

这个大家都会,我就不赘述了

需要注意的是Toolchain/IDE选项务必选择Makefile

这个时候你的项目大概是长这样的:
image

5.3 配置EIDE项目

进入vscode的左边EIDE一栏,在上面的EIDE PROJECTS里面可以找到我们的项目了
我们展开它,发现有很多需要配置,我们一步步来
image

5.3.1 源文件目录设置

鼠标停留在Project Resources一栏,会有一个文件夹以及绿色加号的图标,我们点击它可以新建源文件目录,有虚拟文件夹和普通文件夹两个选项,意思看它下面的注释就能理解了

我们打开Makefile文件,找到C_SOURCES那一栏,对照着把文件夹补齐(我习惯是用普通文件夹的)
然后根目录下的.s文件也是要加进去的,我的习惯是建一个虚拟文件夹放进去(在右键菜单里面可以添加文件)

这个时候你的配置大概是这样:
image

5.3.2 设置编译器选项

在那个Builder Configurations那一栏选择arm-gcc工具链

然后展开的选项里面:
CPU Type:你单片机什么内核就选什么
Linker Script File Path:选择根目录下的.ld文件
Builder Options:照着makefile里面改就行,不过32的话我试下来不改也没大事

设置完成大概是这样:
image

5.3.3 设置烧录器

选择你的烧录器,我这里是用的Jlink,如果用其他的烧录器就选其他的,也可以选择Openocd,但是这里不对Openocd做介绍,如有需要自行了解

展开来的选项里面CPU Name:选择你的单片机型号

设置完成就这样:
image

5.3.4 项目属性

Include Directories:头文件包含目录,照着makefile中的C_INCLUDES添加即可
Library Directorise:库目录
Proprocessor Definitions:预定义,也是跟着makefile来

完毕之后是这样
image

5.3.5 项目设置

基本不需要动


到此为止,项目已经搭建完成

六、编译和烧录!

打开项目里面随便一个文件,右上角的Build按键即编译,然后一个向下的箭头即烧录
如果出错了就根据报错找找原因,也翻翻上面有没有遗漏的步骤

七、调试

gdb是不能调试keil编译的工程的,所以如果你eide插件调用的是keil进行的编译那就没法用下面这个方式调试

这里会需要vscode的另外一个插件——Cortex-Debug
image
这个插件支持不少的debug方式,主流的是用openocd,但是我自己是在用jlink,所以这里用的是JlinkGDBServer的调试方式。如果你是其他的link的话可以参考其他的文章,比如这个

7.1 设置gdb路径

在vscode的设置中搜索arm toolchain path然后应该能看到这一个选项
image
点击Edit in settings.json然后像这样添加一行指定你的路径即可
image

7.2 设置你的jlinkGDBserver路径

在vscode的设置中搜索jlink,应该能看到这一个选项:
image
点击Edit in settings.json然后添加向我这样的一样就行
image

7.3. 设置launch.json

我们打开.vscode文件夹,可以看到类似下面的配置:
image

下面介绍一下上面几个参数的含义

  • cwd:current working directory
  • type:调试器类型,这里我们要调试单片机就必须得是cortex-debug
  • name:这个任务的名字,可以自己取
  • servertype:根据你用的进行选择,这里我用的是jlink,如果是openocd的改成openocd即可
  • interface:你的调试接线方式
  • executable:二进制文件
  • device:你的设备
  • svdFile:system view description,这个可有可无,是用来在debug时看寄存器值的,想要有的话可以去st官网找,不过其他的单片机就可能不会公开svd文件了

上面大部分的内容都是插件自动帮你填好的,有缺的可以自己添添补补

7.4 正式开始调试!

F5就可以开始调试了,或者点开左边栏的RunAndDebug栏然后开始也一样
总的界面就大概像下面这样
image
左边可以看变量、寄存器值等,打断点之类的也是一切正常

八、打包一个模板并根据模板来生成新工程

前面一通操作不得不说还是要点时间的,而eide十分贴心的做了一个打包模板的功能,我们可以直接打包一份模板,以后可以基于这个模板新建工程,就不会有这么多准备工作去做了!

8.1 生成模板

实际操作就是在左边栏进入eide的界面,右击你的项目,点击export eide project template,他就会在根目录下生成一个ept文件
image

8.2 根据模板创建工程

在eide创建工程的时候选择Local Template,然后选择你刚生成的那个ept文件即可
其他操作看着指示来就行

posted @ 2022-01-06 17:27  Foriver  阅读(8353)  评论(2编辑  收藏  举报