# 可下载的 ESP-IDF 工具

[English]

构建过程中，ESP-IDF 依赖许多工具，如交叉编译工具链、CMake 构建系统等。

如 快速入门 所述，若所需工具版本可用，首选使用当前操作系统的软件包管理器（如 apt、yum、brew 等）安装相关工具。例如，在 Linux 和 macOS 系统中，建议用 Linux 和 macOS 系统的软件包管理器安装 CMake。

但部分 ESP-IDF 的特定工具在操作系统软件包存储库中不可用，且不同版本的 ESP-IDF 需相应使用不同版本的工具运行。为解决以上两个问题，ESP-IDF 提供了一组脚本，可以下载和安装正确的工具版本，并设置相应运行环境。

下文中，这类可下载的工具简称为“工具”。除此类工具外，ESP-IDF 还使用以下工具：

- ESP-IDF 捆绑的 Python 脚本，如 `idf.py`

- 从 PyPI 安装的 Python 软件包

以下各小节介绍了可下载工具的安装方法，并提供了在不同平台上安装的工具列表。

备注

本文档面向需要自定义其安装过程的高级用户、希望了解安装过程的用户以及 ESP-IDF 开发人员。

要了解如何安装 ESP-IDF 工具，请参阅 快速入门。

## 工具元数据文件

各平台所需工具及工具版本列表存放在 tools/tools.json 文件中，tools/tools_schema.json 定义了该文件的模式。

在安装工具或设置环境变量时，tools/idf_tools.py 脚本将使用上述文件。

## 工具安装目录

`IDF_TOOLS_PATH` 环境变量指定下载及安装工具的位置。若未设置该变量，Linux 和 macOS 系统的默认下载安装位置为 `HOME/.espressif`，Windows 系统的默认下载安装位置为 `%USER_PROFILE%\.espressif`。

在 `IDF_TOOLS_PATH` 目录下，工具安装脚本会创建以下子目录和文件：

- `dist` — 工具存档下载位置。

- `tools` — 工具解压缩位置。工具会解压缩到子目录 `tools/TOOL_NAME/VERSION/` 中，该操作支持同时安装不同版本的工具。

- `idf-env.json` — “目标 (target)”和“功能 (feature)”等用户安装选项均存储在此文件中。“目标”为选择需要安装和保持更新的工具的芯片目标；“功能”则决定应安装哪些 Python 软件包。有关用户安装选项的详情，请参阅下文。

- `python_env` — 与工具无关；虚拟 Python 环境安装在其子目录中。注意，设置 `IDF_PYTHON_ENV_PATH` 环境变量可以将 Python 环境目录放置到其他位置。

- `espidf.constraints.*.txt` — 每个 ESP-IDF 版本都有的约束文件，包含 Python 包版本要求。

## GitHub 资源镜像

工具下载器下载的工具大多属于 GitHub 发布的资源，即在 GitHub 上伴随软件发布的文件。

如果无法访问 GitHub 下载或访问速度较慢，可以配置一个 GitHub 资源镜像。

要使用乐鑫下载服务器，请将环境变量 `IDF_GITHUB_ASSETS` 设置为 `dl.espressif.com/github_assets`，在国内下载时，也可设置为 `dl.espressif.cn/github_assets` 加快下载速度。安装过程中，当从 `github.com` 下载工具时，URL 将重写为使用乐鑫下载服务器。

只要 URL 与 `github.com` 的下载 URL 格式匹配，任何镜像服务器均可使用，安装过程中下载的 GitHub 资源 URL 将把 `https://github.com` 替换为 `https://${IDF_GITHUB_ASSETS}`。

备注

目前，乐鑫下载服务器不会镜像 GitHub 上的所有内容，只镜像部分发布版本的附件资源文件及源文件。

## `idf_tools.py` 脚本

ESP-IDF 随附的 tools/idf_tools.py 脚本具备以下功能：

- `install`：将工具下载到 `${IDF_TOOLS_PATH}/dist` 目录，并解压缩到 `${IDF_TOOLS_PATH}/tools/TOOL_NAME/VERSION`。

  `install` 命令接收 `TOOL_NAME` 或 `TOOL_NAME@VERSION` 格式的安装工具列表。如果给定参数 `all`，则会安装列表上的所有工具，包括必须项和可选项。如果没有给定参数，或给定参数为 `required`，则只安装必须项。

- `download`：与 `install` 类似，但不会解压缩工具。使用可选项 `--platform` 可下载特定平台的工具。

- `export`：列出使用已安装工具前应设置的环境变量。对多数工具而言，只需要设置环境变量 `PATH`，但也有些工具需要设置额外的环境变量。

  环境变量可以以 `shell` 或 `key-value` 格式列出，使用 `--format` 参数设置该选项。

  - `export` 可选参数：

    - `--unset`：该参数可用于创建语句，取消特定全局变量设置，使环境恢复到调用 `export.{sh/fish}` 前的状态。

    - `--add_paths_extras`：该参数将 `$PATH` 中与 ESP-IDF 相关的额外路径添加到 `${IDF_TOOLS_PATH}/esp-idf.json` 中，以保证在退出当前 ESP-IDF 环境时删除全局变量。例如，在运行 `export.{sh/fish}` 脚本时，如果在全局变量 `$PATH` 中添加了新的路径，在命令中添加该参数可以将这些新路径保存到 `${IDF_TOOLS_PATH}/esp-idf.json` 文件中。

  - `shell`：生成适合在 shell 中执行的输出，例如，在 Linux 和 macOS 上生成以下输出

        export PATH="/home/user/.espressif/tools/tool/v1.0.0/bin:$PATH"

    在 Windows 上生成以下输出

        set "PATH=C:\Users\user\.espressif\tools\v1.0.0\bin;%PATH%"

    备注

    当前不支持以 Powershell 格式导出环境变量，可以用 `key-value` 格式代替。

    如果 shell 支持，则该命令的输出可用于更新环境变量。例如

        eval $($IDF_PATH/tools/idf_tools.py export)

  - `key-value`：以 `VARIABLE=VALUE` 格式生成输出，以便其他脚本解析

        PATH=/home/user/.espressif/tools/tool/v1.0.0:$PATH

    注意，用于处理此输出的脚本必须对输出中的 `$VAR` 或 `%VAR%` 模式进行扩展，即解析成对应变量。

- `list`：列出已知的工具版本，并指示哪些版本已安装。

  以下选项可用于自定义输出。

  - `--outdated`：仅列出安装在 `IDF_TOOLS_PATH` 中的过时版本工具。

- `check`：检查每个工具是否在系统路径和 `IDF_TOOLS_PATH` 中可用。

- `install-python-env`：在 `${IDF_TOOLS_PATH}/python_env` 目录或直接在 `IDF_PYTHON_ENV_PATH` 环境变量设置的目录中创建 Python 虚拟环境，并在其中安装所需的 Python 软件包。

  - 参数 `--features` 为可选项，用于指定要添加或删除的功能列表，功能之间用逗号分隔。

    1. 该参数将删除以 `-` 开头的功能，添加以 `+` 开头或无符号标记的功能。例如，要删除功能 `XY`，示例语法为 `--features=-XY`；要添加功能 `XY`，示例语法为 `--features=+XY` 或 `--features=XY`。如果为同一功能同时提供了删除和添加选项，则不执行任何操作。

    2. 每个功能都必须有依赖文件。例如，只有当 `${IDF_PATH}/tools/requirements/requirements.XY.txt` 文件已存在，并包含要安装的 Python 包列表时，功能 `XY` 才有效。

    3. `core` 功能为必须项，确保 ESP-IDF 的核心功能，如控制台中的构建、烧录、监视器、调试等。

    4. 用户可选择任意数量的可选功能，已选功能列表存储在 `idf-env.json` 中。

    5. 依赖文件中存储了需要安装的 Python 包以及 `espidf.constraints.*.txt` 文件，该约束文件从 https://dl.espressif.com 下载，并存储在 `${IDF_TOOLS_PATH}` 目录，包含了针对特定 ESP-IDF 版本的安装包版本要求。

  备注

  可以通过使用 `--no-constraints` 参数或将环境变量 `IDF_PYTHON_CHECK_CONSTRAINTS` 设置为 `no`，禁用约束文件的下载和使用，但 并不建议此做法。

- `check-python-dependencies`：检查所有必需的 Python 包是否均已安装。该命令会对比检查由 `idf-env.json` 功能列表从 `${IDF_PATH}/tools/requirements/requirements.*.txt` 所选择的软件包与 `espidf.constraints.*.txt` 文件指定的软件包版本是否一致。

  备注

  约束文件可通过 `install-python-env` 命令下载。与 `install-python-env` 命令类似，可以通过使用 `--no-constraints` 参数或将环境变量 `IDF_PYTHON_CHECK_CONSTRAINTS` 设置为 `no`，禁止使用约束文件。

- `uninstall`：打印并删除当前 ESP-IDF 版本未使用的工具。

  - `--dry-run` 打印已安装但未使用的工具。

  - `--remove-archives` 删除过去下载的所有旧版本软件安装包。

## 安装脚本

ESP-IDF 的根目录中提供了针对不同 shell 的用户安装脚本，包括：

- `install.bat` 适用于 Windows 命令提示符

- `install.ps1` 适用于 Powershell

- `install.sh` 适用于 Bash

- `install.fish` 适用于 Fish

这些脚本除了下载和安装 `IDF_TOOLS_PATH` 中的工具外，还会准备一个 Python 虚拟环境，并在此虚拟环境中安装所需软件包。

为启用相应功能，这些脚本可以选择性地接受一组以逗号分隔的芯片目标列表及 `--enable-*` 参数，这类参数会传递给 `idf_tools.py` 脚本，并由该脚本将这类参数存储在 `idf-env.json` 中，从而逐步启用芯片目标及功能。

要为所有芯片目标安装工具，请在不使用任何可选参数的情况下，运行 `idf_tools.py install --targets=all`。要安装具备 ESP-IDF 核心功能的 Python 软件包，请运行 `idf_tools.py install-python-env --features=core`。

也可为特定芯片安装工具，例如，运行 `install.sh esp32` 可以只为 ESP32 安装工具。更多相关示例，请参阅 第三步：设置工具。

运行 `idf_tools.py install-python-env --features=core,XY`，`install.sh --enable-XY` 可以启用 `XY` 功能。

## 导出脚本

由于安装好的工具并非永久添加到用户或系统的 `PATH` 环境变量中，因此，要在命令行中使用这些工具，还需要额外步骤。以下脚本会修改当前 shell 的环境变量，从而使用正确版本的工具：

- `export.bat` 适用于 Windows 命令提示符

- `export.ps1` 适用于 Powershell

- `export.sh` 适用于 Bash

- `export.fish` 适用于 Fish

备注

在 Bash 中修改 shell 环境时，必须使用 `. ./export.sh` 命令加载 `export.sh`，注意添加前面的点和空格。

`export.sh` 可以在多种 shell 中使用，例如 bash、sh、zsh、dash 等。在使用 bash 或 zsh 时，可以在任何路径中直接运行（例如 `. ./<<some_path>>/export.sh`），这是因为它能够自动检测到 `IDF_PATH`。若使用其它 shell, 则必须在 ESP-IDF 路径中运行 (`. ./export.sh`)，才能正确找到 `IDF_PATH`。

### activate.py

环境设置由底层的 `tools/activate.py` 脚本处理。该脚本用于执行所有必要的准备和检查，并生成一个临时文件，之后供导出脚本使用。

`activate.py` 也可以作为独立命令运行。执行该脚本时，会启动一个新的子 shell 并加载 ESP-IDF 环境。使用 `exit` 命令可以退出子 shell，并退回至最初执行该脚本的父 shell。

此外，`activate.py` 脚本的具体行为可以通过各种选项进行修改，例如使用 `--shell` 选项可以生成特定的 ESP-IDF shell。若想了解更多有关可用选项的详细信息，请使用 `activate.py --help` 命令。

备注

在 Windows 系统中使用 `activate.py` 脚本时，应执行 `python activate.py` 命令。这可以确保脚本在当前终端窗口中运行，而不是启动一个立即关闭的新窗口。

## 其他安装方法

为适用于不同环境，ESP-IDF 提供了更多用户友好的 `idf_tools.py` 包装工具：

- ESP-IDF 工具安装器 支持下载和安装工具，其内部使用 `idf_tools.py` 实现功能。

- ESP-IDF Eclipse 插件 包括了一个用于设置工具的菜单项，该插件内部调用 `idf_tools.py`。

- VSCode ESP-IDF 扩展 提供了设置工具的入门流程。尽管此扩展包不依赖 `idf_tools.py`，但安装方法相同。

## 自定义安装

推荐用户使用上述方法安装 ESP-IDF 工具，但也可以选择其他方式来构建 ESP-IDF 应用程序。自定义安装时，用户需将所有必要的工具都安装在某个位置，并在 `PATH` 中定义，以保证 ESP-IDF 构建系统可用。

## 卸载 ESP-IDF

卸载 ESP-IDF 需要删除安装过程中配置的工具和环境变量。

- 使用 Windows ESP-IDF 工具安装器 的 Windows 用户可以直接运行卸载向导卸载 ESP-IDF。

- 工具安装目录 下包含了已下载及安装的工具，删除该目录即可删除此前通过运行 安装脚本 安装的内容。通过 导出脚本 设置的环境变量不具备永久性，新环境中不会存在此类环境变量。

- 如在安装过程中进行了自定义设置，除删除上述工具外，可能还涉及手动恢复此前为适用 ESP-IDF 工具而修改的环境变量及系统路径，例如 `IDF_PYTHON_ENV_PATH` 或 `IDF_TOOLS_PATH`。如存在通过手动复制安装的工具，则也需手动追踪并删除相关文件。

- 如安装了 ESP-IDF Eclipse 或 VSCode ESP-IDF 扩展程序 等插件，则需按照对应插件文档中的特定卸载说明进行操作。

备注

卸载 ESP-IDF 工具不会删除任何项目文件或用户代码。为防止意外丢失其他文件，请在删除文件时谨慎操作。如果对某个步骤的操作有所疑问，请参考前述安装说明。

上述卸载指南默认需卸载的工具是按本文档中的步骤进行安装的。如果使用了自定义安装，可能需要进行相应调整。

## ESP-IDF 工具列表

### xtensa-esp-elf-gdb

GDB for Xtensa

License: GPL-3.0-or-later

More info: https://github.com/espressif/binutils-gdb

Platform | Required | Download
--- | --- | ---
linux-amd64 | required | https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/xtensa-esp-elf-gdb-16.3_20250913-x86_64-linux-gnu.tar.gz SHA256: 16d05c9104ff84529ac3799abb04d5666c193131ab461f153040721728b48730
linux-arm64 | required | https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/xtensa-esp-elf-gdb-16.3_20250913-aarch64-linux-gnu.tar.gz SHA256: ecbd53ba28cf24301be8260249bfcfb60567f938f4402797617c8a0fc170dc7d
linux-armel | required | https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/xtensa-esp-elf-gdb-16.3_20250913-arm-linux-gnueabi.tar.gz SHA256: c0895e88797089fd6b16e1cb986c5c85a880e0e8dc03bde1016c7771bc10ddba
linux-armhf | required | https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/xtensa-esp-elf-gdb-16.3_20250913-arm-linux-gnueabihf.tar.gz SHA256: d939e273150f78c79e62c15564cb880f253b8f23670968905ea00687f9a7af2f
linux-i686 | required | https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/xtensa-esp-elf-gdb-16.3_20250913-i586-linux-gnu.tar.gz SHA256: 64ffefb7625edae77a03a13fd9bd07db088dec9d145eb1124de66f11510f7558
macos | required | https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/xtensa-esp-elf-gdb-16.3_20250913-x86_64-apple-darwin24.5.tar.gz SHA256: 8341493abc87e6ae468f4eda16c768b2ddb20c98336e1c491a3801ad823680ae
macos-arm64 | required | https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/xtensa-esp-elf-gdb-16.3_20250913-aarch64-apple-darwin24.5.tar.gz SHA256: 251e3be9c9436d9ab7fee6c05519fd816a05e63bd47495e24ea4e354881a851c
win32 | required | https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/xtensa-esp-elf-gdb-16.3_20250913-i686-w64-mingw32.zip SHA256: 8fc9fa6a934523b6ad6e787cf1664d48496bae456fd85ea7589e3684ce3bbbe5
win64 | required | https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/xtensa-esp-elf-gdb-16.3_20250913-x86_64-w64-mingw32.zip SHA256: 99a2243b9a75bbac95a672cc3ab4b36013429ab5b4583e7a28339e3015a3fdfa

### riscv32-esp-elf-gdb

GDB for RISC-V

License: GPL-3.0-or-later

More info: https://github.com/espressif/binutils-gdb

Platform | Required | Download
--- | --- | ---
linux-amd64 | required | https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/riscv32-esp-elf-gdb-16.3_20250913-x86_64-linux-gnu.tar.gz SHA256: 4e3cf8b7d11c7a2d1b50f40b1c50c0671dfe7eb13782c27c8a8cfdc8548bcdd4
linux-arm64 | required | https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/riscv32-esp-elf-gdb-16.3_20250913-aarch64-linux-gnu.tar.gz SHA256: 8f1f4f24fa534c76ed9d71efffbf728cc30169e911742d7bd67dd0fdcf5f3ae3
linux-armel | required | https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/riscv32-esp-elf-gdb-16.3_20250913-arm-linux-gnueabi.tar.gz SHA256: ac4fc85e3daf190b21598ec468933dc2659033580715560f45827da25e15b285
linux-armhf | required | https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/riscv32-esp-elf-gdb-16.3_20250913-arm-linux-gnueabihf.tar.gz SHA256: 628d0375f80f63834f68be1b2c4d71690d32ac71b4a9a32f514829a9eb90439f
linux-i686 | required | https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/riscv32-esp-elf-gdb-16.3_20250913-i586-linux-gnu.tar.gz SHA256: 905dcd78558d7d559a95dc1eacc4572ea908be4ae6b1c937ea63a98df4482ca9
macos | required | https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/riscv32-esp-elf-gdb-16.3_20250913-x86_64-apple-darwin24.5.tar.gz SHA256: 2d5e5efead0b189e13cfe2670ca9d6d5965378ef3632d0b163a14f2f0536c274
macos-arm64 | required | https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/riscv32-esp-elf-gdb-16.3_20250913-aarch64-apple-darwin24.5.tar.gz SHA256: 92771492084746fd22521c7c5b52bf1ed6dd86ef3cafe60e771bbdb4f0943f5a
win32 | required | https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/riscv32-esp-elf-gdb-16.3_20250913-i686-w64-mingw32.zip SHA256: c6a36c469d3b76e2b442be207814f7c3f71f21faf6faab4dd33fdedd56d89c01
win64 | required | https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.3_20250913/riscv32-esp-elf-gdb-16.3_20250913-x86_64-w64-mingw32.zip SHA256: 32e79cb43b40f3b256193139b1fefd2782e3eaf82ee317b757ec8ba18b35159d

### xtensa-esp-elf

Toolchain for 32-bit Xtensa based on GCC

License: GPL-3.0-with-GCC-exception

More info: https://github.com/espressif/crosstool-NG

Platform | Required | Download
--- | --- | ---
linux-amd64 | required | https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/xtensa-esp-elf-14.2.0_20250730-x86_64-linux-gnu.tar.xz SHA256: 4fd6d2517f55161056b735cc53c7ccfa59c30a574a0f4decfad77cae4ca5f711
linux-arm64 | required | https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/xtensa-esp-elf-14.2.0_20250730-aarch64-linux-gnu.tar.xz SHA256: 916a3007a75c6e4b252cb1857a00657cd0c90ebc60fc265cfa0f4cd7d18ace5c
linux-armel | required | https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/xtensa-esp-elf-14.2.0_20250730-arm-linux-gnueabi.tar.xz SHA256: 347f7bd53c45b568d25d0897b119c25e66f8487815fd3192d510c9bebea09d99
linux-armhf | required | https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/xtensa-esp-elf-14.2.0_20250730-arm-linux-gnueabihf.tar.xz SHA256: 9817f0cb2157c17f950ab7de9f8a1af05f4a4147a78c5ab9059cad1a9d2eaa5f
linux-i686 | required | https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/xtensa-esp-elf-14.2.0_20250730-i586-linux-gnu.tar.xz SHA256: bf024e686913baa840f1d545d1c6fdc5d0e622bb79d3f3608648e01ee6170a30
macos | required | https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/xtensa-esp-elf-14.2.0_20250730-x86_64-apple-darwin.tar.xz SHA256: 96d6d8388ba0710b99a0659c1dee29a16dbd0c6c5cc49a5baf91dca634167205
macos-arm64 | required | https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/xtensa-esp-elf-14.2.0_20250730-aarch64-apple-darwin.tar.xz SHA256: 954d88961660e51599a98855cf9ed8550801e27ee10c2184a258b93c38a1edcc
win32 | required | https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/xtensa-esp-elf-14.2.0_20250730-i686-w64-mingw32.zip SHA256: 77020244927a0deaabb650ea1c56ee1d355ca9fdad78d0f53b1a80075ecabcba
win64 | required | https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/xtensa-esp-elf-14.2.0_20250730-x86_64-w64-mingw32.zip SHA256: 9ce39218884cfbf428f9f6b1cb6afd9341e327f5e1a8d1d0369c21ae6e3b0828

### esp-clang

Toolchain for all Espressif chips based on clang

License: Apache-2.0

More info: https://github.com/espressif/llvm-project

Platform | Required | Download
--- | --- | ---
linux-amd64 | optional | https://github.com/espressif/llvm-project/releases/download/esp-18.1.2_20240912/clang-esp-18.1.2_20240912-x86_64-linux-gnu.tar.xz SHA256: aee15b8e02440f9ec6a8070f017621dc400dbd62a4701f9cf456dbe34d2a0c4d
linux-arm64 | optional | https://github.com/espressif/llvm-project/releases/download/esp-18.1.2_20240912/clang-esp-18.1.2_20240912-aarch64-linux-gnu.tar.xz SHA256: 14abbc368d9c153270aa4d22ce28d78633cb0f1ca83d4be70591d9e39ae9bc82
linux-armhf | optional | https://github.com/espressif/llvm-project/releases/download/esp-18.1.2_20240912/clang-esp-18.1.2_20240912-arm-linux-gnueabihf.tar.xz SHA256: 4133285303aabb1831c477536a13413319a569170b0aa54b92abe69cc0e7b938
macos | optional | https://github.com/espressif/llvm-project/releases/download/esp-18.1.2_20240912/clang-esp-18.1.2_20240912-x86_64-apple-darwin.tar.xz SHA256: b4641ec4dd574b6b7d037aa1bb2e5ff5a8a4623c88e89668db656282eb1d9dc8
macos-arm64 | optional | https://github.com/espressif/llvm-project/releases/download/esp-18.1.2_20240912/clang-esp-18.1.2_20240912-aarch64-apple-darwin.tar.xz SHA256: 5d2e187ef40ecc9996630a7c6efcc19bdfd32ec4ce8cc4dd3014cd24e7016560
win64 | optional | https://github.com/espressif/llvm-project/releases/download/esp-18.1.2_20240912/clang-esp-18.1.2_20240912-x86_64-w64-mingw32.tar.xz SHA256: c4af15073b105dc174c0452dfd1875bab200412fa3151c0363cfc0d30abf5173

### riscv32-esp-elf

Toolchain for 32-bit RISC-V based on GCC

License: GPL-3.0-with-GCC-exception

More info: https://github.com/espressif/crosstool-NG

Platform | Required | Download
--- | --- | ---
linux-amd64 | required | https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/riscv32-esp-elf-14.2.0_20250730-x86_64-linux-gnu.tar.xz SHA256: 5c467d91a0ee58c2c08ce3950e00f512d93330fbc89d2a290fb37405fe805942
linux-arm64 | required | https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/riscv32-esp-elf-14.2.0_20250730-aarch64-linux-gnu.tar.xz SHA256: aaa865a2d9a6b7a042af814d14c0d28f0b17dc30d83c2a5b32b96e7c2ba3bacb
linux-armel | required | https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/riscv32-esp-elf-14.2.0_20250730-arm-linux-gnueabi.tar.xz SHA256: 7f93c6b5639b5c82e88792607bdcb98d43502abddf08e994db4dc9f7a7ee5271
linux-armhf | required | https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/riscv32-esp-elf-14.2.0_20250730-arm-linux-gnueabihf.tar.xz SHA256: d6f20a1015b8c7e6ad2a3bcc94ca98cd121b5174bc448cb5191ab67a3d774c07
linux-i686 | required | https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/riscv32-esp-elf-14.2.0_20250730-i586-linux-gnu.tar.xz SHA256: 867011b00a0697a0ddfa7a87f20d0579a6dc9323d48a16f34f6e851ebcfd779d
macos | required | https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/riscv32-esp-elf-14.2.0_20250730-x86_64-apple-darwin.tar.xz SHA256: 6dbb7718d332f6a300fc85b2bdd87c7decae0739bdb1a73bfe57ad034053fbb3
macos-arm64 | required | https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/riscv32-esp-elf-14.2.0_20250730-aarch64-apple-darwin.tar.xz SHA256: f605c426966e58cfddd5bb86967dc63e15812dbf0118a28c97c7fef8178937e5
win32 | required | https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/riscv32-esp-elf-14.2.0_20250730-i686-w64-mingw32.zip SHA256: ac8816920e0bc6c4032abc27f4962b2b2f59b231ed86e0002476196f9f1f0d35
win64 | required | https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20250730/riscv32-esp-elf-14.2.0_20250730-x86_64-w64-mingw32.zip SHA256: a41e5219f0ff66cde3da3ac096b55d60fef4a1fb746590893c4c47f5437f192a

### esp32ulp-elf

Toolchain for ESP32 ULP coprocessor

License: GPL-3.0-or-later

More info: https://github.com/espressif/binutils-gdb

Platform | Required | Download
--- | --- | ---
linux-amd64 | required | https://github.com/espressif/binutils-gdb/releases/download/esp32ulp-elf-2.38_20240113/esp32ulp-elf-2.38_20240113-linux-amd64.tar.gz SHA256: d13a808365b78465fa6591636dfbbb9604d9d15a397c3d9cd22626d54828ac2c
linux-arm64 | required | https://github.com/espressif/binutils-gdb/releases/download/esp32ulp-elf-2.38_20240113/esp32ulp-elf-2.38_20240113-linux-arm64.tar.gz SHA256: ecce0788ce1000e5c669c5adaf2fd5bf7f9bf96dcdbd3555d1d9ce4dcb311038
linux-armel | required | https://github.com/espressif/binutils-gdb/releases/download/esp32ulp-elf-2.38_20240113/esp32ulp-elf-2.38_20240113-linux-armel.tar.gz SHA256: 7228b01277f7908d72eb659470f82e143c4c66b444538a464290d88ece16130e
linux-armhf | required | https://github.com/espressif/binutils-gdb/releases/download/esp32ulp-elf-2.38_20240113/esp32ulp-elf-2.38_20240113-linux-armhf.tar.gz SHA256: 951b089c66561bc2190a8d57c316dfaef985a778728a7c30e1edcd29fe180016
linux-i686 | required | https://github.com/espressif/binutils-gdb/releases/download/esp32ulp-elf-2.38_20240113/esp32ulp-elf-2.38_20240113-linux-i686.tar.gz SHA256: df323d40962313168f6feeb2d9471c6010ff23a7896f40244e62991517d9745b
macos | required | https://github.com/espressif/binutils-gdb/releases/download/esp32ulp-elf-2.38_20240113/esp32ulp-elf-2.38_20240113-macos.tar.gz SHA256: b2aeba8eaafdf156e9e30be928dde1f133b00eaf33802d96827ec544ac7c864c
macos-arm64 | required | https://github.com/espressif/binutils-gdb/releases/download/esp32ulp-elf-2.38_20240113/esp32ulp-elf-2.38_20240113-macos-arm64.tar.gz SHA256: e3a4dfea043e2bce8cd00b3a0b260a59249fa61ca5931bf02f18a3d43c18deb4
win32 | required | https://github.com/espressif/binutils-gdb/releases/download/esp32ulp-elf-2.38_20240113/esp32ulp-elf-2.38_20240113-win32.zip SHA256: d33b64f49df27dcfa4a24d3af1a5ead77b020f85f33448994c31b98f88e66bb4
win64 | required | https://github.com/espressif/binutils-gdb/releases/download/esp32ulp-elf-2.38_20240113/esp32ulp-elf-2.38_20240113-win64.zip SHA256: 3a7627008ac92d1580542b95c696449e56aaa1d0881dc3ef5fd5c60afc77a49d

### cmake

CMake build system

On Linux and macOS, it is recommended to install CMake using the OS-specific package manager (like apt, yum, brew, etc.). However, for convenience it is possible to install CMake using idf_tools.py along with the other tools.

License: BSD-3-Clause

More info: https://github.com/Kitware/CMake

Platform | Required | Download
--- | --- | ---
linux-amd64 | optional | https://github.com/Kitware/CMake/releases/download/v3.30.2/cmake-3.30.2-linux-x86_64.tar.gz SHA256: cdd7fb352605cee3ae53b0e18b5929b642900e33d6b0173e19f6d4f2067ebf16
linux-arm64 | optional | https://github.com/Kitware/CMake/releases/download/v3.30.2/cmake-3.30.2-linux-aarch64.tar.gz SHA256: d18f50f01b001303d21f53c6c16ff12ee3aa45df5da1899c2fe95be7426aa026
linux-armel | optional | https://dl.espressif.com/dl/cmake/cmake-3.30.2-Linux-armv7l.tar.gz SHA256: 446650c69ea74817a770f96446c162bb7ad24ffecaacb35fcd4845ec7d3c9099
linux-armhf | optional | https://dl.espressif.com/dl/cmake/cmake-3.30.2-Linux-armv7l.tar.gz SHA256: 446650c69ea74817a770f96446c162bb7ad24ffecaacb35fcd4845ec7d3c9099
macos | optional | https://github.com/Kitware/CMake/releases/download/v3.30.2/cmake-3.30.2-macos-universal.tar.gz SHA256: c6fdda745f9ce69bca048e91955c7d043ba905d6388a62e0ff52b681ac17183c
macos-arm64 | optional | https://github.com/Kitware/CMake/releases/download/v3.30.2/cmake-3.30.2-macos-universal.tar.gz SHA256: c6fdda745f9ce69bca048e91955c7d043ba905d6388a62e0ff52b681ac17183c
win32 | required | https://github.com/Kitware/CMake/releases/download/v3.30.2/cmake-3.30.2-windows-x86_64.zip SHA256: 48bf4b3dc2d668c578e0884cac7878e146b036ca6b5ce4f8b5572f861b004c25
win64 | required | https://github.com/Kitware/CMake/releases/download/v3.30.2/cmake-3.30.2-windows-x86_64.zip SHA256: 48bf4b3dc2d668c578e0884cac7878e146b036ca6b5ce4f8b5572f861b004c25

### openocd-esp32

OpenOCD for ESP32

License: GPL-2.0-only

More info: https://github.com/espressif/openocd-esp32

Platform | Required | Download
--- | --- | ---
linux-amd64 | required | https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20250707/openocd-esp32-linux-amd64-0.12.0-esp32-20250707.tar.gz SHA256: 766293bd7a08900d3536f87a0a7ade960f07266f16e4147f95ca5ce4e15d4c5d
linux-arm64 | required | https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20250707/openocd-esp32-linux-arm64-0.12.0-esp32-20250707.tar.gz SHA256: 34b6883c372444b49950893b2fc0101aefd10d404a88ef72c97e80199f8544d3
linux-armel | required | https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20250707/openocd-esp32-linux-armel-0.12.0-esp32-20250707.tar.gz SHA256: fd48492cf3ee16577c661fdccc14c349d34a9ab93aac5039ddf72332d4f4b70b
linux-armhf | required | https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20250707/openocd-esp32-linux-armhf-0.12.0-esp32-20250707.tar.gz SHA256: a468cc108578a1f4553ac0502c814d47791ef79f5997a31e941908fa5119de9c
macos | required | https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20250707/openocd-esp32-macos-0.12.0-esp32-20250707.tar.gz SHA256: 6267be53892a76d535938a1b044b685adc7d292f090447e8a3e3d0f0996474d1
macos-arm64 | required | https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20250707/openocd-esp32-macos-arm64-0.12.0-esp32-20250707.tar.gz SHA256: 150e938ac48a6ee031ddbc8b31043bc7f2073ab2ee4896b658918d35899673c3
win32 | required | https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20250707/openocd-esp32-win32-0.12.0-esp32-20250707.zip SHA256: 666274b04af7f36b430b6d063006051c37b8635b5175735ad5af07a1fbc6f486
win64 | required | https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20250707/openocd-esp32-win64-0.12.0-esp32-20250707.zip SHA256: 5186ba3f7ee29fb6ab68a4ed7bb417211bad76ecdcdf9280a9187ebfd549a3c1

### ninja

Ninja build system

On Linux and macOS, it is recommended to install ninja using the OS-specific package manager (like apt, yum, brew, etc.). However, for convenience it is possible to install ninja using idf_tools.py along with the other tools.

License: Apache-2.0

More info: https://github.com/ninja-build/ninja

Platform | Required | Download
--- | --- | ---
linux-amd64 | optional | https://github.com/ninja-build/ninja/releases/download/v1.12.1/ninja-linux.zip SHA256: 6f98805688d19672bd699fbbfa2c2cf0fc054ac3df1f0e6a47664d963d530255
macos | optional | https://github.com/ninja-build/ninja/releases/download/v1.12.1/ninja-mac.zip SHA256: 89a287444b5b3e98f88a945afa50ce937b8ffd1dcc59c555ad9b1baf855298c9
macos-arm64 | optional | https://github.com/ninja-build/ninja/releases/download/v1.12.1/ninja-mac.zip SHA256: 89a287444b5b3e98f88a945afa50ce937b8ffd1dcc59c555ad9b1baf855298c9
win64 | required | https://github.com/ninja-build/ninja/releases/download/v1.12.1/ninja-win.zip SHA256: f550fec705b6d6ff58f2db3c374c2277a37691678d6aba463adcbb129108467a

### idf-exe

IDF wrapper tool for Windows

License: Apache-2.0

More info: https://github.com/espressif/idf_py_exe_tool

Platform | Required | Download
--- | --- | ---
win32 | required | https://github.com/espressif/idf_py_exe_tool/releases/download/v1.0.3/idf-exe-v1.0.3.zip SHA256: 7c81ef534c562354a5402ab6b90a6eb1cc8473a9f4a7b7a7f93ebbd23b4a2755
win64 | required | https://github.com/espressif/idf_py_exe_tool/releases/download/v1.0.3/idf-exe-v1.0.3.zip SHA256: 7c81ef534c562354a5402ab6b90a6eb1cc8473a9f4a7b7a7f93ebbd23b4a2755

### ccache

Ccache (compiler cache)

License: GPL-3.0-or-later

More info: https://github.com/ccache/ccache

Platform | Required | Download
--- | --- | ---
win64 | required | https://github.com/ccache/ccache/releases/download/v4.11.2/ccache-4.11.2-windows-x86_64.zip SHA256: 1f39f3ad5aae3fe915e99ad1302633bc8f6718e58fa7c0de2b0ba7e080f0f08c

### dfu-util

dfu-util (Device Firmware Upgrade Utilities)

License: GPL-2.0-only

More info: http://dfu-util.sourceforge.net/

Platform | Required | Download
--- | --- | ---
win64 | required | https://dl.espressif.com/dl/dfu-util-0.11-win64.zip SHA256: 652eb94cb1c074c6dbead9e47adb628922aeb198a4d440a346ab32e7a0e9bf64

### esp-rom-elfs

ESP ROM ELFs

License: Apache-2.0

More info: https://github.com/espressif/esp-rom-elfs

Platform | Required | Download
--- | --- | ---
any | required | https://github.com/espressif/esp-rom-elfs/releases/download/20241011/esp-rom-elfs-20241011.tar.gz SHA256: 921f000164a421c7628fbfee55b173384aafaa51883adc65cd27bf9b0af9e9a9

### qemu-xtensa

QEMU for Xtensa

Some ESP-specific instructions for running QEMU for Xtensa chips are here: https://github.com/espressif/esp-toolchain-docs/blob/main/qemu/esp32/README.md

License: GPL-2.0-only

More info: https://github.com/espressif/qemu

Platform | Required | Download
--- | --- | ---
linux-amd64 | optional | https://github.com/espressif/qemu/releases/download/esp-develop-9.2.2-20250817/qemu-xtensa-softmmu-esp_develop_9.2.2_20250817-x86_64-linux-gnu.tar.xz SHA256: 588bfaccd0f929650655d10a580f020c6ba9c131712d8fa519280081b8d126eb
linux-arm64 | optional | https://github.com/espressif/qemu/releases/download/esp-develop-9.2.2-20250817/qemu-xtensa-softmmu-esp_develop_9.2.2_20250817-aarch64-linux-gnu.tar.xz SHA256: 317f6e0fd1dba0886d8110709823d909593ef29438822a14f81ebe19d72ce7cd
macos | optional | https://github.com/espressif/qemu/releases/download/esp-develop-9.2.2-20250817/qemu-xtensa-softmmu-esp_develop_9.2.2_20250817-x86_64-apple-darwin.tar.xz SHA256: 00b9dbc2124cf7633cb86f264fbc524226ad4001bce68bbdba43c9bdc4eb026e
macos-arm64 | optional | https://github.com/espressif/qemu/releases/download/esp-develop-9.2.2-20250817/qemu-xtensa-softmmu-esp_develop_9.2.2_20250817-aarch64-apple-darwin.tar.xz SHA256: aa92e337461d482f5d9f31cd8efc0bd67b3de8fcfcfb567289cb43a59c184651
win64 | optional | https://github.com/espressif/qemu/releases/download/esp-develop-9.2.2-20250817/qemu-xtensa-softmmu-esp_develop_9.2.2_20250817-x86_64-w64-mingw32.tar.xz SHA256: ef550b912726997f3c1ff4a4fb13c1569e2b692efdc5c9f9c3c926a8f7c540fa

### qemu-riscv32

QEMU for RISC-V

Some ESP-specific instructions for running QEMU for RISC-V chips are here: https://github.com/espressif/esp-toolchain-docs/blob/main/qemu/esp32c3/README.md

License: GPL-2.0-only

More info: https://github.com/espressif/qemu

Platform | Required | Download
--- | --- | ---
linux-amd64 | optional | https://github.com/espressif/qemu/releases/download/esp-develop-9.2.2-20250817/qemu-riscv32-softmmu-esp_develop_9.2.2_20250817-x86_64-linux-gnu.tar.xz SHA256: 373b37a68bae3ef441ead24a7bfc950fcbfc274cbdd2b628fc6915f179eb1d8e
linux-arm64 | optional | https://github.com/espressif/qemu/releases/download/esp-develop-9.2.2-20250817/qemu-riscv32-softmmu-esp_develop_9.2.2_20250817-aarch64-linux-gnu.tar.xz SHA256: f907a54313058f8a9681d2f48257d518950ff98bcd5a319194b4bee7c10cf223
macos | optional | https://github.com/espressif/qemu/releases/download/esp-develop-9.2.2-20250817/qemu-riscv32-softmmu-esp_develop_9.2.2_20250817-x86_64-apple-darwin.tar.xz SHA256: 820028ee7cd2dd8fe8cd8ca5519ab6e792d15fea9367c4525cf63c0f707c0b1f
macos-arm64 | optional | https://github.com/espressif/qemu/releases/download/esp-develop-9.2.2-20250817/qemu-riscv32-softmmu-esp_develop_9.2.2_20250817-aarch64-apple-darwin.tar.xz SHA256: 234690b6fa7c1d5dfe3dbb2bdd0c2810755e7c98999a9f21c389a6046b7eb76d
win64 | optional | https://github.com/espressif/qemu/releases/download/esp-develop-9.2.2-20250817/qemu-riscv32-softmmu-esp_develop_9.2.2_20250817-x86_64-w64-mingw32.tar.xz SHA256: 9474015f24d27acb7516955ec932e5307226bd9d6652cdc870793ed36010ab73

此文档对您有帮助吗？

- 反馈已收到，谢谢！
- 如果您有其他意见，欢迎填写乐鑫文档反馈表。

- 我们重视您的反馈。
- 您可以填写乐鑫文档反馈表告诉我们如何改进该文档。