本文将带你回顾 ESP-IDF Extension for VS Code v1.10.0、v1.10.1、v1.11.0、v1.11.1、v2.0.2 和 v2.1.0 的主要更新内容。

这一系列版本中最重要的变化,是引入了 Espressif Installation Manager (EIM)。EIM 是一个独立工具,用于统一 ESP-IDF 在各种工具与环境中的安装方式,并取代了扩展内置的安装向导。除此之外,扩展还新增了更深入的调试能力、AI 辅助工作流、原生 UI 升级,以及大量开发体验优化。


EIM 集成

如果你还没有阅读我们专门介绍 EIM 的发布文章,建议先从那里开始:ESP-IDF Installation Manager v0.8

EIM 是一个独立的跨平台工具,可通过 wingetbrewaptdnf 或直接下载二进制文件安装。它能够统一管理 ESP-IDF 安装,无论安装是由哪个工具触发的。

一旦 EIM 安装了 ESP-IDF,任何支持读取 eim_idf.json 清单文件的工具(包括 VS Code 扩展)都能自动发现并使用这些安装,无需再手动配置路径。

要安装 ESP-IDF,请打开 Command Palette 并运行:

ESP-IDF: Open ESP-IDF Installation Manager

根据你的运行环境,EIM 会以以下两种方式之一启动:

  • 图形界面 (GUI):在桌面环境中,EIM 会以独立窗口形式启动,引导用户逐步选择并安装 ESP-IDF 版本,全程无需命令行。
  • 终端向导:在 SSH、Dev Containers、Codespaces、WSL 等无 GUI 环境中,扩展会自动切换为交互式终端程序,在控制台中完成相同的安装流程。

ESP-IDF 安装完成后,扩展会读取 EIM 生成的 eim_idf.json 文件,并自动发现所有已安装版本。

GUI 安装演示视频:

如果视频无法播放,请访问原文查看:https://developer.espressif.com/blog/2026/05/esp-idf-vs-code-extension-v2-1-0/

终端向导:

EIM 终端向导

EIM 终端向导

如需查看 GUI 安装器的详细步骤,可参考《使用 EIM GUI 在线安装》文档。

若需要切换多个 ESP-IDF 版本,可使用:

ESP-IDF: Select Current ESP-IDF Version

当前选择的版本会保存到工作区状态 idf.currentSetup 中,所有相关环境变量也会自动配置。

向后兼容:基于 idf.customExtraVars 环境变量的旧配置方式依然有效。当该配置存在时,扩展会优先使用这些变量,而不是 EIM 管理的安装环境。完整信息请参考最新安装文档

通过 EIM CLI 安装到自定义路径(高级)

大多数用户可以跳过本节。 本节仅适用于使用 EIM CLI 并指定自定义路径参数(例如 eim install -p D:\YourCustomPath)的用户。EIM GUI 始终安装到默认路径,并可被自动检测。

如果你通过 EIM CLI 将 ESP-IDF 安装到了非默认路径,扩展可能无法自动发现该安装。此时,请通过 Preferences: Open Settings (UI) 手动设置扩展配置项 idf.eimIdfJsonPath,并填写 eim_idf.json 文件的完整路径。

关于 EIM CLI 自定义路径参数的完整说明,请参考 EIM FAQ


v2.0.2 / v2.1.0 —— EIM 集成与开发体验升级

为什么要进行这项改动

此前,通过扩展安装 ESP-IDF,需要用户使用嵌入在 VS Code 内的自定义安装向导。虽然它能够正常工作,但存在以下问题:

  • 维护成本高
  • 各平台行为不一致
  • 与 VS Code 外部的 ESP-IDF 安装相互割裂

例如,在命令行、CI 或其他 IDE 中安装的 ESP-IDF,并不会自动与扩展同步。

EIM 解决了这些问题。由于它是独立工具,因此无论 ESP-IDF 是通过 GUI、CLI 还是其他 IDE 安装的,只要生成了 eim_idf.json,包括本扩展在内的所有工具都能自动识别。

v2.0.2 移除了什么

该版本清理了大量历史遗留功能:

  • 旧版安装向导ESP-IDF: Configure ESP-IDF extension)→ 已由 EIM 取代
  • idf.espIdfPathidf.toolsPath 设置 → 改为由所选 EIM 配置自动生成环境变量
  • 旧版调试适配器 → 已由 v1.8.0 引入的 Eclipse CDT Debug Adapter 替代
  • ESP-MDF、ESP-Matter、ESP-HomeKit 框架集成 → 这些框架现已迁移至 ESP Component Registry,可直接在扩展中访问(ESP-ADF 仍保留支持)
  • ESP-IDF: Show Examples 命令 → 已由功能更强的 ESP-IDF: New Project 替代

远程环境中的 EIM(v2.1.0)

v2.1.0 将 EIM 支持扩展到了:SSH、Dev Containers、Codespaces、WSL 及其他无 GUI 环境。在这些环境中,扩展会稳定地切换到终端向导模式,而不再尝试启动 GUI。完整流程请参考前文「EIM 集成」部分。

分类整理后的扩展设置(v2.1.0)

扩展设置在 VS Code Settings UI 中进行了重新分类整理。此前,ESP-IDF 相关选项以长列表形式呈现;现在则按照 Build、Flash、Debug、Tooling、Installation 等类别进行组织,更容易查找和配置。

新的 Settings UI 分类

新的 Settings UI 分类

构建变更后自动重启 Clang Server(v2.1.0)

compile_commands.json 发生变化时,扩展现在会自动重启 Clang Language Server。

在此前版本中,构建或重新配置后,IntelliSense 与代码导航可能会失效,除非用户手动重启语言服务器。v2.1.0 能够自动同步 Clang 分析状态,减少诊断信息与代码补全落后于实际配置的问题。

新建工程向导:模板优先(v2.0.2)

新版工程向导现在会先展示可用模板,再询问配置项。这样用户可以更方便地浏览并选择工程起点,再决定具体配置。

调试图像查看器(v2.0.2)

v2.0.2 新增了 Debug Image Viewer,可在调试过程中直接可视化 C 图像数组,或读取磁盘中的图像数据。

默认支持 OpenCVLVGL 图像格式。你还可以配置自定义图像数据类型,只要能够提供 UInt8Array 和图像尺寸或长度,即可适配任意 Frame Buffer 布局。详细说明请参考 ESP-IDF Image Viewer 文档

Debug Image Viewer 渲染 C 图像数组

Debug Image Viewer 渲染 C 图像数组

其他值得关注的改进与修复(v2.1.0)

对于 ESP32-P4 用户,调试会话现在支持查看 PIE 寄存器,进一步完善了底层调试能力。

此外,v2.1.0 还包含多个提升实际工程稳定性的修复,包括:

  • 更好支持 VS Code Snap 安装版本
  • 修复手动非 EIM 安装的激活问题
  • 改进 sdkconfig 路径解析
  • 正确使用 idf.customExtraVars 中定义的环境变量
  • Linux 环境下统一使用 sh 作为激活脚本与 IDF Terminal Shell,提高 Shell 兼容性

v1.11.0 / v1.11.1 —— AI、DevKit 与更丰富的开发体验

GitHub Copilot Chat AI 集成

v1.11.0 引入了对 GitHub Copilot Chat 的 Language Tool API 集成

当你在启用了 ESP-IDF 扩展的工程中使用 Copilot Chat 时,它将获得以下 ESP-IDF 上下文信息:IDF 版本、目标芯片、工程配置,从而生成更准确、更贴合嵌入式开发场景的建议。除了回答问题外,Copilot Chat 还能直接调用扩展命令,例如清理 build 目录并重新构建,无需离开聊天窗口即可完成。完整命令列表请参考 ESP-IDF Chat Commands 文档

如果视频无法播放,请访问原文查看:https://developer.espressif.com/blog/2026/05/esp-idf-vs-code-extension-v2-1-0/

DevKit 支持

这是用户长期呼声很高的一项功能。现在,当开发者选择目标芯片与开发板时,扩展可以识别官方乐鑫 DevKit,并自动应用开发板默认配置,减少工程初始化时的手动设置。

选择 Espressif 设备目标时的 DevKit 选项

选择 Espressif 设备目标时的 DevKit 选项

编辑器面板中的经典 Menuconfig

SDK Configuration Editor 现在集成了经典 Menuconfig 视图,直接嵌入 VS Code 内部。除了图形化编辑器外,开发者还可以直接在 VS Code 中使用类似 idf.py menuconfig 的终端式导航体验,可通过以下命令打开:

ESP-IDF: Open Classic Menuconfig Terminal

VS Code 中的经典 Menuconfig 视图

VS Code 中的经典 Menuconfig 视图

现代化 UI:VS Code 原生风格

所有扩展 Webview 均已升级为使用 VS Code 原生 UI Toolkit,使 New Project Wizard、SDK Configuration Editor 等面板在视觉与交互体验上与 VS Code 保持一致,并能够正确适配浅色、深色及自定义主题。

Unity Test Runner

v1.11.0 使用专为 ESP-IDF 单元测试打造的 Unity Test Runner 与 Parser,替代了此前基于 Pytest 的测试运行器。Unity 是 ESP-IDF 所采用的标准测试框架,此次原生集成可在 VS Code Test Explorer 中提供更准确的测试发现、执行与结果解析能力。

Hints Viewer 中的 OpenOCD 提示

OpenOCD 错误信息现在会显示在 Hints Viewer 中,与 ESP-IDF 编译提示一起呈现。当调试启动失败或硬件连接异常时,Hints Viewer 会提供上下文化指导,而不再需要用户手动分析原始日志。

更智能的串口检测

扩展现在支持通过 esptool.py 自动检测串口,同时新增默认串口设置项。对于连接了多个 USB-串口设备的环境,这能避免用户在每次 Build / Flash 时都手动选择串口。

反汇编视图:函数名显示

Disassembly 视图现在会同时显示函数名与地址,这使调试时浏览和理解反汇编代码更加直观。

创建空工程命令

新增命令:

ESP-IDF: Create Empty Project

适用于只需要最小化工程骨架(CMakeLists.txt 与 main 组件)的用户,不再默认附带示例代码。

创建工程时自动生成 .gitignore

所有新建工程现在都会默认生成合理的 .gitignore 文件,避免将构建产物、可选的 sdkconfig 文件以及 managed_components 目录误提交到版本控制系统中。

v1.11.x 的其他重要更新

  • Clang 安装提示:若系统缺少 Clang,扩展会主动提示安装
  • 安装向导支持自定义 PyPI 镜像 URL,适用于私有镜像环境
  • 新增配置项,可扩展 JTAG Flash 参数
  • 调试启动前检查 OpenOCD 是否运行,避免模糊报错
  • Full Clean 命令支持额外文件与目录
  • 支持自定义 Pytest glob 模式与单元测试服务
  • 新增预发布版本订阅功能,可直接在 VS Code 中加入预发布计划

v1.10.0 / v1.10.1 —— 更强大的调试能力与更灵活的分区操作

变量检查增强

v1.10.1 为调试体验带来了三项增强:

  • 鼠标悬停查看变量:调试时将鼠标悬停在变量上,即可立即查看当前值,无需加入 Watch 面板。
  • 以十六进制查看变量:可直接在 Variables 面板中切换整数变量的十进制与十六进制显示方式。这对于处理寄存器数值、内存地址或位掩码时尤为重要。
  • 数据断点:支持设置「数据断点」,即当特定内存地址被读取或写入时触发断点,无需离开 VS Code 即可实现高级 Watchpoint 调试。

变量右键菜单 – 以十六进制查看

变量右键菜单 – 以十六进制查看

分区级 Flash 操作

v1.10.0 引入了更细粒度的 Flash 控制:

  • 独立构建、烧录、读取 App / Bootloader / Partition Table
  • 从设备直接读取分区表
  • 向指定分区单独烧录指定 Binary,无需重新烧录整个设备

这极大提升了迭代开发效率,尤其适用于 Bootloader 已稳定、仅需更新应用程序的场景。对应命令包括:

ESP-IDF: Build App
ESP-IDF: Flash App only
ESP-IDF: Build Bootloader
ESP-IDF: Flash Bootloader Only
ESP-IDF: Build Partition Table
ESP-IDF: Flash Partition Table Only

Device Partition Explorer – 分区操作菜单

Device Partition Explorer – 分区操作菜单

Clang 工程设置配置

基于 Clang 的静态分析与 IntelliSense 工具链现在在扩展设置中提供了专门的配置界面,使用户能够更方便地按工程级别配置 Clang 路径及相关选项。

ESP-IDF Extension for VS Code Profile 模板

v1.10.1 引入了专为 ESP-IDF 开发定制的 VS Code Profile 模板。VS Code Profile 允许用户保存和共享特定的扩展配置、设置以及快捷键绑定,这些模板提供了一套经过整理和优化的起始配置,更适合 Espressif 开发场景。

当前 OpenOCD 开发板指示器

在选择 OpenOCD 开发板配置时,扩展现在会在列表中高亮当前正在使用的开发板配置,使用户能够更直观地确认当前生效的配置,减少误选或配置不一致的问题。

QEMU 集成改进

v1.10.0 对 QEMU 支持进行了扩展,统一使用 idf qemu 处理调试与监视(monitor)工作流。同时新增 idf.qemuExtraArgs 配置项,允许用户向 QEMU 模拟器传递额外参数,从而在不修改启动任务的情况下实现更精细的仿真配置。

idf.monitorPort 设置

新增独立配置项 idf.monitorPort,用于单独指定 IDF Monitor 使用的串口,与烧录(flash)串口分离。该功能适用于烧录端口与日志监控端口使用不同物理连接的开发与测试场景。


相关资源

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐