[VSCODE]基于EIDE插件搭建vscode下的STM32单片机开发环境
请注意本文撰写时间(2022-1-6),目前EIDE插件一直在跟新中,其内容可能会于本文有所出入,请以官方手册为主
EIDE(全称Embedded IDE)是国内的一个大佬开发的vscode插件,本人用下来体验非常好,因此在这里分享给大家,这是这个插件的官方论坛和官方手册
本篇文章只会提一些基本的使用,而且也只是针对基于有CUBEMX的STM32,如果想要开发其他单片机详细的还是得参考手册
本篇文章是给有基础的人看的,vscode的基本使用在这里不会详细展开,一些地方会讲的比较粗略,如果有不懂的概念请自行查找资料
如果你不喜欢vscode而是喜欢JetBrain家的Clion,也可以参考大佬的这篇文章
那么我们正式开始
一、安装GNU Arm Embedded Toolchain
去官网找
这个有手就行
二、安装vscode
这也是有手就行
注意点是安装的时候记得把下面几个选项打开
确保自己的对着文件夹空白处的右击菜单里面有通过code打开
这个选项就行
三、安装EIDE插件和一些辅助性插件
打开vscode,在左边的Extensions栏(或者按Ctrl+Shift+X)里面可以搜索你想要的插件并安装
搜索EIDE,找到我们的主角,然后Install即可
我这里是因为已经安装过了所以没有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会在左侧栏多出一个选项:
点进去会发现一共有上下两栏,我们选择下面的OPERATIONS,然后点击Set ToolChain Path,在弹出的选项中选择:
接着选择offline,然后选择你的armgcc工具链安装路径即可,设置成功之后你再次打开这个选项菜单他就会和上面一样打勾
4.1.2 配置烧录器
我这里是用的Jlink做烧录器,如果要用其他的烧录器自己想办法去~
点击Open plug-in Settings
,进入插件配置页,找到Jlink,填入JLink的安装路径即可
4.2 了解项目结构
下文摘自官方文档
项目文件:
.eide
eide项目文件夹,存放eide项目信息,日志等文件.vscode
vscode配置文件目录build
编译默认输出目录,可以在项目的设置中修改pack
芯片支持包的安装位置 本篇教程不会涉及*.code-workspace
vscode工作区文件,这对于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
这个时候你的项目大概是长这样的:
5.3 配置EIDE项目
进入vscode的左边EIDE一栏,在上面的EIDE PROJECTS里面可以找到我们的项目了
我们展开它,发现有很多需要配置,我们一步步来
5.3.1 源文件目录设置
鼠标停留在Project Resources一栏,会有一个文件夹以及绿色加号的图标,我们点击它可以新建源文件目录,有虚拟文件夹和普通文件夹两个选项,意思看它下面的注释就能理解了
我们打开Makefile文件,找到C_SOURCES
那一栏,对照着把文件夹补齐(我习惯是用普通文件夹的)
然后根目录下的.s文件也是要加进去的,我的习惯是建一个虚拟文件夹放进去(在右键菜单里面可以添加文件)
这个时候你的配置大概是这样:
5.3.2 设置编译器选项
在那个Builder Configurations那一栏选择arm-gcc工具链
然后展开的选项里面:
CPU Type
:你单片机什么内核就选什么
Linker Script File Path
:选择根目录下的.ld文件
Builder Options
:照着makefile里面改就行,不过32的话我试下来不改也没大事
设置完成大概是这样:
5.3.3 设置烧录器
选择你的烧录器,我这里是用的Jlink,如果用其他的烧录器就选其他的,也可以选择Openocd,但是这里不对Openocd做介绍,如有需要自行了解
展开来的选项里面CPU Name
:选择你的单片机型号
设置完成就这样:
5.3.4 项目属性
Include Directories
:头文件包含目录,照着makefile中的C_INCLUDES
添加即可
Library Directorise
:库目录
Proprocessor Definitions
:预定义,也是跟着makefile来
完毕之后是这样
5.3.5 项目设置
基本不需要动
到此为止,项目已经搭建完成
六、编译和烧录!
打开项目里面随便一个文件,右上角的Build按键即编译,然后一个向下的箭头即烧录
如果出错了就根据报错找找原因,也翻翻上面有没有遗漏的步骤
七、调试
gdb是不能调试keil编译的工程的,所以如果你eide插件调用的是keil进行的编译那就没法用下面这个方式调试
这里会需要vscode的另外一个插件——Cortex-Debug
这个插件支持不少的debug方式,主流的是用openocd,但是我自己是在用jlink,所以这里用的是JlinkGDBServer的调试方式。如果你是其他的link的话可以参考其他的文章,比如这个
7.1 设置gdb路径
在vscode的设置中搜索arm toolchain path
然后应该能看到这一个选项
点击Edit in settings.json
然后像这样添加一行指定你的路径即可
7.2 设置你的jlinkGDBserver路径
在vscode的设置中搜索jlink,应该能看到这一个选项:
点击Edit in settings.json
然后添加向我这样的一样就行
7.3. 设置launch.json
我们打开.vscode
文件夹,可以看到类似下面的配置:
下面介绍一下上面几个参数的含义
cwd
:current working directorytype
:调试器类型,这里我们要调试单片机就必须得是cortex-debugname
:这个任务的名字,可以自己取servertype
:根据你用的进行选择,这里我用的是jlink,如果是openocd的改成openocd即可interface
:你的调试接线方式executable
:二进制文件device
:你的设备svdFile
:system view description,这个可有可无,是用来在debug时看寄存器值的,想要有的话可以去st官网找,不过其他的单片机就可能不会公开svd文件了
上面大部分的内容都是插件自动帮你填好的,有缺的可以自己添添补补
7.4 正式开始调试!
按F5
就可以开始调试了,或者点开左边栏的RunAndDebug栏然后开始也一样
总的界面就大概像下面这样
左边可以看变量、寄存器值等,打断点之类的也是一切正常
八、打包一个模板并根据模板来生成新工程
前面一通操作不得不说还是要点时间的,而eide十分贴心的做了一个打包模板的功能,我们可以直接打包一份模板,以后可以基于这个模板新建工程,就不会有这么多准备工作去做了!
8.1 生成模板
实际操作就是在左边栏进入eide的界面,右击你的项目,点击export eide project template,他就会在根目录下生成一个ept文件
8.2 根据模板创建工程
在eide创建工程的时候选择Local Template,然后选择你刚生成的那个ept文件即可
其他操作看着指示来就行