VSCode + Embedded IDE(EIDE)嵌入式开发配置使用指南

2026-06-25 16:24 技术

# VSCode + Embedded IDE(EIDE)嵌入式开发配置使用指南

简介

Embedded IDE(简称 EIDE)是一款运行在 VSCode 上的嵌入式开发插件, 支持 8051、AVR、STM8、Cortex-M、MIPS、RISC-V 等多种架构的单片机开发,可以替代 Keil、IAR 等传统 IDE。

为什么选择 embedded ide ?

  • 更好的编码体验:借助 VSCode,我们可以获得更好的编码体验。这有助于提高效率,从源头上减少程序中的潜在错误。
  • 统一的开发环境:这个插件支持多种编译器,烧录工具,适用于绝大多数单片机开发,因此你不必再为每种芯片安装特定的 IDE。
  • 支持跨平台开发:目前我们支持 Windows x64 和 Linux x64。
  • 更好的社区生态:VSCode 上有大量插件,你可以找到很多其他的工具。
  • 更好的版本管理:VSCode 内置 GIT 功能,你可以更好的管理和维护源程序。

支持 6 种不同的编译器,可以被用来开发 8051/stm8/cortex-m[0/0+/3/23/33/35p/4/7]/riscv/。。。 项目

入门

安装

Windows 环境下

1。 安装 VSCode 2。 安装插件 Embedded IDE 3。 配置工具链,安装需要的编译器,如 GNU Toolchain For Arm 等

项目结构

必须文件:

  • eide: 此文件夹包含 eide 项目信息、构建器选项 等配置
  • .eide/eide.json: 此文件用于描述你的项目
  • <workspase name>.code-workspace: 该文件是一个 vscode 工作空间文件,VSCode 将把该工作区的设置保存至该文件

不能删除上述 必须的 文件、文件夹,否则你将无法打开 eide 项目

建议:

  • 使您的工作区文件夹包含所有文件
  • 使您的文件、文件夹路径只包含 ASCII 字符:不要在文件路径中使用非 ASCII 编码和特殊字符(如:%, $, #, @, &, (, ) 。。。)

新建项目

新建一个 eide 项目,支持多种创建新项目的方法

  • Empty Project:新建一个空的项目
  • Internal Template:使用内部模板新建一个项目
  • Local Template:使用本地模板文件(.ept)新建一个项目
  • From Remote Repository:从 git repository 下载模板并新建项目

可以从这个地方在线浏览和下载项目模板:。 可以根据 MCU 品牌进行浏览,选择好模板后点击下载,一个 .ept 后缀的文件将被保存到你的电脑中。 然后打开 VSCode 插件,点击 新建项目 -> 本地项目模板,然后选择刚刚下载好的 .ept 后缀的模板文件。即可新建项目。

配置项目: 在开始编译前,我们需要配置构建选项 默认编译器是 gcc,你可以将编译器切换,支持 gcc/armcc/armclang 至少配置 CPU Type 和 Linker Script File Path

添加源文件: 可以添加一些源文件到项目

编译项目: 一切就绪,现在我们只需要单击 构建 按钮就可以开始编译了 构建任务将启动,日志将输出到 Output Panel

导入项目

将其他 IDE 类型的项目导入为一个新的 eide 项目 在 操作 视图中点击 导入项目 EIDE 将弹出选择列表,现在需要选择一个项目类型 目前支持 Keil 或 Eclipse 项目

再次强调:导入项目的作用是将 Keil 项目迁移到 VSCode,导入后与原先的 Keil 工程失去关联。因此当你完成导入后再去修改 Keil 工程的配置, 这些改动并不会被同步到 VSCode 工程上。 打开 操作 栏,点击 导入项目 启动一个导入流程。 然后选择你要导入的.uvproj 或者 .uvprojx文件(.uvproj 代表 C51 项目,.uvprojx 代表 ARM 项目),点击 Import 按钮执行导入。 在导入完成后,我们需要配置项目,因为 eide 不导入 Keil 项目的编译设置

功能模块

项目资源

添加源文件 添加源文件夹等操作

芯片支持包

为您的 Cortex-M mcu 安装芯片包,这个功能仅支持 Cortex-M 项目类型 支持安装 cmsis-pack 到 eide 项目 当您安装了 cmsis-pack 并为您的项目选择了 mcu 具体型号后,插件将得知你所使用的芯片型号和规格,以下功能将得到优化:

  • 编译配置:插件将自动根据芯片类型选择 CPU Type
  • 烧录配置:对于 JLink 等烧录器,插件可以自动完成型号的选择,以及烧录算法文件的安装
  • 调试配置:插件可以根据芯片型号自动生成更完整的调试配置(用于 Cortex-debug)(包括:芯片型号,SVD 路径等)
  • RAM/ROM Layout:将根据已选择的芯片信息,自动填写 RAM/ROM 地址 和 大小
  • 外设组件:允许安装 cmsis-pack 内附带的源码组件

特别说明:这个功能不是必需的,即使您没有安装任何芯片支持包,插件也能完全正常地工作。 支持两种方式为您的项目安装芯片支持包

1。 从仓库安装 eide 缓存了一些 修剪过的 cmsis 包 如果您使用这种方式,eide 将从上面的存储库中提取所有可用的包,并提供一个列表供您选择。 2。 从磁盘安装 你需要从网站上下载这些包(.pack),并在 eide 弹出的窗口中选择你要安装的包 这里有些官方的下载站点:

  • MDK5 Software Packs:
  • Arm Official Site:

外设组件: 外设组件 是外设驱动源文件的集合 你可以将芯片包里的 外设组件 安装到项目中

构建器配置

你可以为你的项目选择一个合适编译工具(对于每一种项目,我们都提供一些选择) EIDE 支持多种编译器工具链,涵盖从 8 位到 32 位的各类 MCU 架构。以下是各编译器的详细介绍与配置方法

编译器 配置项 适用架构 是否免费
ARMCC V5 (armcc) EIDE.ARM.ARMCC5 ARM Cortex-M 收费(Keil)
ARMCC V6 (armclang) EIDE.ARM.ARMCC6 ARM Cortex-M 收费(Keil)
GNU Arm Embedded Toolchain EIDE.ARM.GCC ARM Cortex-M 免费
IAR ARM C/C++ Compiler EIDE.ARM.IAR ARM Cortex-M 收费
LLVM Embedded Toolchain for Arm EIDE.ARM.LLVM ARM Cortex-M 免费
SDCC EIDE.SDCC 8051、Z80、Z180 等 免费
RISC-V GCC EIDE.RISCV RISC-V 免费
MIPS GCC EIDE.MIPS MIPS 免费
COSMIC STM8 EIDE.STM8.COSMIC STM8 收费
Universal GCC EIDE.GCC 通用 GCC 免费

对于不同的 编译器类型 有不同的基本配置 除了基本选项,还提供了更详细的编译配置项

烧录器配置

烧录你的程序到芯片 支持多种烧录软件:

项目类型 烧录器
8BIT Project stvp for stm8, stcgal, any shell command
Arm Project jlink, stlink, pyocd, openocd, any shell command
RISCV Project jlink, pyocd, openocd, any shell command

你可以在项目中切换烧录器。

安装烧录工具: 烧录工具没有集成到 EIDE 安装包中,因此在使用烧录功能之前需要安装相应的 flasher 工具。 点击 烧录程序 按钮启动 flasher 程序。 在开始烧录程序之前,您需要检查 flasher 配置。

  • JLink: 前往 查看更多的选项
  • STLink: 对于 STLink,我们支持两种烧录软件:ST_Cube_Programmer 和 STLink_Utility 默认情况下,我们使用 ST_Cube_Programmer
  • PyOCD:
  • OpenOCD: Windows 安装包: 官方站点: 如何编写 openocd 配置文件:
  • STVP STVP-STM8 被用来烧录 STM8
  • STCGAL STCGAL 是一个为 STC MCU Ltd 8051 芯片而准备的命令行烧录软件 注意: STCGAL 支持有限数量的芯片模型

项目属性

全局的 包含目录,宏定义 等设置。。。。

包含目录:(IncludePath)是指 c 头文件(.h)的搜索路径 这个配置包含了项目的全局的包含目录 如果编译器在构建时抛出一个错误,并告诉您没有找到 xx.h 文件,您可能需要检查此配置 库目录:当你使用 -l 命令行选项(比如:-lxxx, -lmy_lib)添加了一些库时(.lib, .a),该配置将告诉链接器这些库文件的搜索路径 预处理器定义:这个配置包含了全局的宏定义

项目设置

其他的项目设置 项目名:它用于在生成输出文件时确定文件名 (比如:.elf, .hex, .bin 。。。) 输出文件夹名:它是构建器输出文件夹的名称,这意味着构建过程中的所有中间文件都将在此文件夹中生成,默认值为 build 环境变量:支持在项目中添加一些环境变量

进阶功能

调试项目

准备工作:

  • 装 cortex-debug 插件(无需做任何配置,只需安装该插件即可)
  • 确保工程可以正常烧录。一键调试功能将从烧录配置中自动生成对应的调试配置,因此在调试前必须确保可以正常烧录。
  • 安装 arm-none-eabi-gcc 工具链。Windows 用户可以通过 安装实用工具 功能自动安装。

对于 STLink 如果你选择了 STLink 烧录器,那么你需要通过实用工具功能安装如下软件: STM32 Cube Programmer CLI 和 STLink GDB Server

对于 probe-rs 如果你正在使用 probe-rs 烧录器 那么你需要安装 probe-rs.probe-rs-debugger 插件

启动调试器: 一切就绪后,点击项目栏上的调试按钮 直接启动调试

注意不要使用 VSCode 自带的 Debug 侧边栏启动调试,因为默认状态下 VSCode 需要通过 launch.json 读取配置。 而此处的调试配置是自动生成的,不会出现在 launch.json 中。

添加 SVD 文件以查看外设寄存器: 如果需要查看外设寄存器的值,请将 svd 文件放置到 工程根目录 或者 .eide 或者 tools 目录下, 插件将在这 3 个目录中搜索有效的 svd 文件并作为调试配置传递给 Cortex-Debug。

变量值实时刷新(Live Watch): 如果需要要在不暂停程序的情况下监视一个变量的值,那么请在 Live Watch 窗口中添加变量名表达式。变量值刷新周期是 250ms 一次。

故障排查: 在使用 Cortex-Debug 进行调试的时候,有时可能由于仿真器,开发板,或者配置的问题而导致无法启动调试。 当遇到这种情况时,请按照如下步骤排查:

1。 检查 DEBUG CONSOLE 面板的输出日志 2。 检查 gdb-server 的输出日志

插件设置

EIDE 是一个标准的 VSCode 扩展,因此你可以在 VSCode 设置页面修改插件设置 设置 GCC 编译器前缀 为项目单独指定编译器

项目 Target

切换 Target: 我们支持为一个项目添加一些 Target 每个 Target 都有自己独立的 构建器选项, 项目属性, 烧录器属性。

何时使用 Target 功能 当你想使用多个编译配置,但使用同一份源码的时候,你可以新建不同的 Target,以便在同一个项目中区分出它们。

多项目工作区

你可以创建一个 VSCode 工作区来包含一些相互关联的项目 新建工作区:在磁盘上创建一个文件夹,并在该文件夹中创建一些 eide 项目,在目录中新建一个 .code-workspace 文件 项目次序:每个项目都有一个顺序,可以用来确定构建优先级 你可以添加一个 项目环境变量 EIDE_BUILD_ORDER 来更改优先级 EIDE_BUILD_ORDER = 0 默认的优先级为:100(值越小,优先级越高)

文件路径变量

你可以在 源文件 路径中使用 项目环境变量 对于源文件路径有一些固定的变量可用:

  • ${workspaceFolder}:vscode 工作区文件夹完整路径
  • ${workspaceFolderBasename}:vscode 工作区文件夹名称
  • ${OutDir}:输出目录完整路径,例如:d:/path/my_project/proj_a/build/Debug
  • ${OutDirRoot}:输出目录根名称,例如:build
  • ${OutDirBase}:输出目录基础名,例如:build\Debug
  • ${ProjectName}:eide 项目名称
  • ${ConfigName}:eide 项目 target 名称,例如:debug, release
  • ${ExecutableName}: 输出文件完整路径(不包含文件后缀)例如:d:/path/my_project/proj_a/build/Debug/project_name
  • ${ProjectRoot}:项目根目录完整路径,与 ${workspaceFolder} 相等
  • ${ToolchainRoot}: 工具链根目录完整路径

导出项目

你可以导出你的 eide 项目 导出项目模板: 点击 导出为 。。。 -> EIDE 项目模板,eide 将使用 7z 压缩你的 VSCode 工作区并保存为一个 .ept 文件 现在你可以通过这个模板文件 新建项目。 导出 Keil 项目: 点击 导出为 。。。 -> Keil 项目,eide 将以 Keil 项目格式(uvprojx)导出你的 eide 项目 当操作完成后,一个 uvproj/uvprojx 文件将被生成到你的工作区。 导出 GNU Makefile: 点击 导出为 。。。 -> GNU Makefile, 插件将生成一个 Makefile 文件到该项目的根目录下 现在你可以使用 make 工具对该项目进行构建:

make prebuild
make all -j4

CMSIS 头文件配置向导

CMSIS Configuration Annotations 是一种注释格式,用于在 c 头文件中结构化地描述宏定义 经过特定工具的解析后,可以生成 GUI 配置向导,指导用户查看和修改头文件中的配置

实用功能

反汇编代码: 生成项目后,可以使用 Show Disassembly 菜单按钮检查 c 源文件的反汇编代码。 ELF 反汇编:插件支持反汇编整个程序 ELF 查看器:构建完成后,您可以打开 Output Files 虚拟文件夹节点来检查输出的产物 如果你的编译器输出一个 elf 格式的文件,那么你可以点击它来打开一个 ELF 查看器,eide 将从这个 elf 文件中转储一些信息并显示在一个页面中 存储器资源 Map 视图: 我们支持解析并显示 .map 中的 obj 文件占用情况 构建完成后,您可以打开 Output Files 虚拟文件夹节点来检查输出的产物 点击 *.map.view 文件打开 Map View

串口监视器

自 v3.11.0 起,插件将不再附带内置的 串口监视器 程序 请使用:ms-vscode.vscode-serial-monitor

安装实用工具

安装外部的实用工具,程序 这些工具将被安装到<user_home>/.eide/tools 目录,然后 eide 将导出 bin 路径到系统环境变量

实用终端

EIDE 终端 我们已经导出了一些 变量,程序路径 到 eide 终端上下文环境 您可以通过这个终端直接执行/访问这些 eide 内置的程序 打开一个 EIDE Terminal,使用如下 Shell 命令可以列出所有 环境变量: 命令:ls env:

官方详细教程url

EIDE 与 PlatformIO 对比

EIDE(Embedded IDE)和 PlatformIO 都是基于 VSCode 的嵌入式开发插件,但两者在设计理念、功能定位和适用场景上有显著差异。

维度 EIDE PlatformIO
设计理念 原生集成:直接调用编译器工具链,零中间层 生态平台:自动化管理工具链、框架、库依赖
项目配置 .eide/build.json + .eide/project.json platformio.ini 声明式配置
工具链管理 手动指定本地已安装的工具链路径 自动下载并管理工具链,开箱即用
跨平台 Windows 为主,Linux/macOS 有限支持 Windows、macOS、Linux 完全一致

功能特性对比 EIDE 的优势

  • 多架构支持广泛:8051、STM8、Cortex-M、MIPS、RISC-V,覆盖传统 8 位到现代 32 位 MCU
  • Keil/IAR 项目一键导入:支持 .uvprojx 等格式无损迁移,自动转换配置
  • 内置实用工具丰富:CMSIS Config UI、反汇编视图、Cppcheck 静态检查、串口监视、资源树
  • IntelliSense 开箱即用:无需手动配置 c_cpp_properties.json
  • 工具链切换灵活:Keil、IAR、GCC 可在同一项目中自由切换

PlatformIO 的优势

  • 库管理极其强大:内置 PlatformIO Registry,一键搜索、安装、更新数千个开源库
  • 框架支持丰富:Arduino、ESP-IDF、STM32Cube、Mbed、MicroPython、FreeRTOS、Zephyr 等
  • 支持 800+ 开发板:ESP32、Arduino、STM32、Raspberry Pi Pico、nRF52 等
  • 单元测试与 CI 集成:支持 Unity、GoogleTest 等框架,可配合仿真器进行硬件无关测试
  • 社区生态活跃:开源免费,定期更新,文档完善