热门标签 | HotTags
当前位置:  开发笔记 > 开发工具 > 正文

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

EIDE(全称EmbeddedIDE)是国内的一个大佬开发的vscode插件,本人用下来体验非常好,因此在这里分享给大家,这是这个插件的官方论坛和官方手册本篇文章只会提一些基本的使

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按键即编译,然后一个向下的箭头即烧录

如果出错了就根据报错找找原因,也翻翻上面有没有遗漏的步骤


七、debug

考虑到文章幅度准备把这个部分放到我的下一篇文章



推荐阅读
  • 本文详细记录了在基于Debian的Deepin 20操作系统上安装MySQL 5.7的具体步骤,包括软件包的选择、依赖项的处理及远程访问权限的配置。 ... [详细]
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • 本文介绍了如何使用 Spring Boot DevTools 实现应用程序在开发过程中自动重启。这一特性显著提高了开发效率,特别是在集成开发环境(IDE)中工作时,能够提供快速的反馈循环。默认情况下,DevTools 会监控类路径上的文件变化,并根据需要触发应用重启。 ... [详细]
  • IT项目管理过程中的方法、工具、技术
    工欲善其事,必先利其器。而对于一个软件开发项目,最重要的器就是方法,工具和技术。而这三要素中重要的又是方法论,方法是基础&# ... [详细]
  • 探讨如何高效使用FastJSON进行JSON数据解析,特别是从复杂嵌套结构中提取特定字段值的方法。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文介绍了如何在具备多个IP地址的FTP服务器环境中,通过动态地址端口复用和地址转换技术优化网络配置。重点讨论了2Mb/s DDN专线连接、Cisco 2611路由器及内部网络地址规划。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • c# – UWP:BrightnessOverride StartOverride逻辑 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
author-avatar
龙马爱梓喵_me
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有