可下载的 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_NAMETOOL_NAME@VERSION 格式的安装工具列表。如果给定参数 all,则会安装列表上的所有工具,包括必须项和可选项。如果没有给定参数,或给定参数为 required,则只安装必须项。

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

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

    环境变量可以以 shellkey-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,XYinstall.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 可以在除了 Bash 外的其他 shell(如 zsh)中使用。但在这种情况下,必须在运行脚本前设置 IDF_PATH 环境变量。在 Bash 中使用时,脚本会从当前目录猜测 IDF_PATH 的值。

除了调用 idf_tools.py,这些脚本还会列出已经添加到 PATH 的目录。

其他安装方法

为适用于不同环境,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_PATHIDF_TOOLS_PATH。如存在通过手动复制安装的工具,则也需手动追踪并删除相关文件。

  • 如安装了 ESP-IDF EclipseVSCode 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-v12.1_20231023/xtensa-esp-elf-gdb-12.1_20231023-x86_64-linux-gnu.tar.gz

SHA256: d0743ec43cd92c35452a9097f7863281de4e72f04120d63cfbcf9d591a373529

linux-arm64

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v12.1_20231023/xtensa-esp-elf-gdb-12.1_20231023-aarch64-linux-gnu.tar.gz

SHA256: bc1fac0366c6a08e26c45896ca21c8c90efc2cdd431b8ba084e8772e15502d0e

linux-armel

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v12.1_20231023/xtensa-esp-elf-gdb-12.1_20231023-arm-linux-gnueabi.tar.gz

SHA256: 25efc51d52b71f097ccec763c5c885c8f5026b432fec4b5badd6a5f36fe34d04

linux-armhf

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v12.1_20231023/xtensa-esp-elf-gdb-12.1_20231023-arm-linux-gnueabihf.tar.gz

SHA256: 0f9ff39fdec4d8c9c1ef33149a3fcdd2cf1bae121529c507817c994d5ac38ca4

linux-i686

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v12.1_20231023/xtensa-esp-elf-gdb-12.1_20231023-i586-linux-gnu.tar.gz

SHA256: e0af0b3b4a6b29a843cd5f47e331a966d9258f7d825b4656c6251490f71b05b2

macos

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v12.1_20231023/xtensa-esp-elf-gdb-12.1_20231023-x86_64-apple-darwin14.tar.gz

SHA256: bd146fd99a52b2d71c7ce0f62b9e18f3423d6cae7b2b2c954046b0dd7a23142f

macos-arm64

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v12.1_20231023/xtensa-esp-elf-gdb-12.1_20231023-aarch64-apple-darwin21.1.tar.gz

SHA256: 5edc76565bf9d2fadf24e443ddf3df7567354f336a65d4af5b2ee805cdfcec24

win32

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v12.1_20231023/xtensa-esp-elf-gdb-12.1_20231023-i686-w64-mingw32.zip

SHA256: ea4f3ee6b95ad1ad2e07108a21a50037a3e64a420cdeb34b2ba95d612faed898

win64

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v12.1_20231023/xtensa-esp-elf-gdb-12.1_20231023-x86_64-w64-mingw32.zip

SHA256: 13bb97f39173948d1cfb6e651d9b335ea9d52f1fdd0dda1eda3a2d23d8c63644

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-v12.1_20231023/riscv32-esp-elf-gdb-12.1_20231023-x86_64-linux-gnu.tar.gz

SHA256: 2c78b806be176b1e449e07ff83429d38dfc39a13f89a127ac1ffa6c1230537a0

linux-arm64

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v12.1_20231023/riscv32-esp-elf-gdb-12.1_20231023-aarch64-linux-gnu.tar.gz

SHA256: 33f80117c8777aaff9179e27953e41764c5c46b3c576dc96a37ecc7a368807ec

linux-armel

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v12.1_20231023/riscv32-esp-elf-gdb-12.1_20231023-arm-linux-gnueabi.tar.gz

SHA256: 292e6ec0a9381c1480bbadf5caae25e86428b68fb5d030c9be7deda5e7f070e0

linux-armhf

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v12.1_20231023/riscv32-esp-elf-gdb-12.1_20231023-arm-linux-gnueabihf.tar.gz

SHA256: 3b803ab1ae619d62a885afd31c2798de77368d59b888c27ec6e525709e782ef5

linux-i686

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v12.1_20231023/riscv32-esp-elf-gdb-12.1_20231023-i586-linux-gnu.tar.gz

SHA256: 68a25fbcfc6371ec4dbe503ec92211977eb2006f0c29e67dbce6b93c70c6b7ec

macos

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v12.1_20231023/riscv32-esp-elf-gdb-12.1_20231023-x86_64-apple-darwin14.tar.gz

SHA256: 322c722e6c12225ed8cd97f95a0375105756dc5113d369958ce0858ad1a90257

macos-arm64

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v12.1_20231023/riscv32-esp-elf-gdb-12.1_20231023-aarch64-apple-darwin21.1.tar.gz

SHA256: c2224b3a8d02451c530cf004c29653292d963a1b4021b4b472b862b6dbe97e0b

win32

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v12.1_20231023/riscv32-esp-elf-gdb-12.1_20231023-i686-w64-mingw32.zip

SHA256: 4b42149a99dd87ee7e6dde25c99bad966c7f964253fa8f771593d7cef69f5602

win64

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v12.1_20231023/riscv32-esp-elf-gdb-12.1_20231023-x86_64-w64-mingw32.zip

SHA256: 728231546ad5006d34463f972658b2a89e52f660a42abab08a29bedd4a8046ad

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-13.2.0_20240305/xtensa-esp-elf-13.2.0_20240305-x86_64-linux-gnu.tar.xz

SHA256: 4e43e56cd533a39c6b0ccc8b30320b19ce66b0b17e646b53fa84c9bf956b2c83

linux-arm64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240305/xtensa-esp-elf-13.2.0_20240305-aarch64-linux-gnu.tar.xz

SHA256: 06bc30be9d824fa8da507dff228085563baa7f6251e42a14deae0ca0e93ec2eb

linux-armel

required

https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240305/xtensa-esp-elf-13.2.0_20240305-arm-linux-gnueabi.tar.xz

SHA256: f0ecab5ae0a63abf4e43b1f3873d89181d1772748f028653f5e81264fb451e61

linux-armhf

required

https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240305/xtensa-esp-elf-13.2.0_20240305-arm-linux-gnueabihf.tar.xz

SHA256: 15ed342e9d5c647dce8c688a4796bf8b0b9e44283f9ebe99e11aba63cc3d85b2

linux-i686

required

https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240305/xtensa-esp-elf-13.2.0_20240305-i586-linux-gnu.tar.xz

SHA256: 73fe99abc7d7a33eeb13473902e7025f0b41626891cb358a4dc9bf02b2b53931

macos

required

https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240305/xtensa-esp-elf-13.2.0_20240305-x86_64-apple-darwin.tar.xz

SHA256: 5bf2b5ececdf92169e5a084d2485b8d0d60480ce130a3035dc407f01e4e7820d

macos-arm64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240305/xtensa-esp-elf-13.2.0_20240305-aarch64-apple-darwin.tar.xz

SHA256: e2bf7886bb39ad6558e1f46160fae887705f903ea8b77cd28bbf77093d3ca286

win32

required

https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240305/xtensa-esp-elf-13.2.0_20240305-i686-w64-mingw32.zip

SHA256: 79ea0dbd314012f199fc9a9bbbcc4c11473ea87f81be4c1b4c60328d3d73b9f8

win64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240305/xtensa-esp-elf-13.2.0_20240305-x86_64-w64-mingw32.zip

SHA256: a80879c35b7f82ce80332ef0b68b0c7d245bafd9c98a35c45965850f40faf5ba

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-16.0.0-20230516/llvm-esp-16.0.0-20230516-linux-amd64.tar.xz

SHA256: 3dbd8dd290913a93e8941da8a451ecd49f9798cc2d74bb9b63ef5cf5c4fee37f

linux-arm64

optional

https://github.com/espressif/llvm-project/releases/download/esp-16.0.0-20230516/llvm-esp-16.0.0-20230516-linux-arm64.tar.xz

SHA256: 4b115af6ddd04a9bffc1908fc05837998ee71d450891d741c446186f2aa9b961

linux-armhf

optional

https://github.com/espressif/llvm-project/releases/download/esp-16.0.0-20230516/llvm-esp-16.0.0-20230516-linux-armhf.tar.xz

SHA256: 935082bb0704420c5ca42b35038bba8702135348a50cac454ae2fb55af0b4c32

macos

optional

https://github.com/espressif/llvm-project/releases/download/esp-16.0.0-20230516/llvm-esp-16.0.0-20230516-macos.tar.xz

SHA256: d9824acafd3e7b1d17ace084243b82a95bbdcb149a26b085bba487ab3d3716d7

macos-arm64

optional

https://github.com/espressif/llvm-project/releases/download/esp-16.0.0-20230516/llvm-esp-16.0.0-20230516-macos-arm64.tar.xz

SHA256: ed5621396dc3e48413e14e8b6caed8e2993e7f2ab5fca1410081f40c940a1060

win64

optional

https://github.com/espressif/llvm-project/releases/download/esp-16.0.0-20230516/llvm-esp-16.0.0-20230516-win64.tar.xz

SHA256: 598c8241c8bf10fd1be8bd21845307cfc404e127041b4ba4e828350a88692883

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-13.2.0_20240305/riscv32-esp-elf-13.2.0_20240305-x86_64-linux-gnu.tar.xz

SHA256: 2bd71171ddb801e59c85ecbea3b89d6f707627d6c11e501cae43ca7c0db73eda

linux-arm64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240305/riscv32-esp-elf-13.2.0_20240305-aarch64-linux-gnu.tar.xz

SHA256: 806ccd08333a96ae73507625a1762f7ac7a8c82f193602cafb835c4d7f5678ab

linux-armel

required

https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240305/riscv32-esp-elf-13.2.0_20240305-arm-linux-gnueabi.tar.xz

SHA256: 312f404e86dde7d22f5c4b7216ea386dbf8d5f93dea50f689471cedc2e457f91

linux-armhf

required

https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240305/riscv32-esp-elf-13.2.0_20240305-arm-linux-gnueabihf.tar.xz

SHA256: a546224d8dc33c6a00a35b5856261232ce9218953e2ee8bcacdcc899d0c19591

linux-i686

required

https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240305/riscv32-esp-elf-13.2.0_20240305-i586-linux-gnu.tar.xz

SHA256: 09d0ee10e1e617a93f6597c279bf9388b6384790a45b1d87451a40d1ff4e5f71

macos

required

https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240305/riscv32-esp-elf-13.2.0_20240305-x86_64-apple-darwin.tar.xz

SHA256: dfb4a2f46c66a9246a25e3c34b19a91c7a3f33a44721cd61ec01d442d5344193

macos-arm64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240305/riscv32-esp-elf-13.2.0_20240305-aarch64-apple-darwin.tar.xz

SHA256: 1e48833974a8e9ad2a0ac287ad244b825392d623edaf269bd66f4d8a215a0ef8

win32

required

https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240305/riscv32-esp-elf-13.2.0_20240305-i686-w64-mingw32.zip

SHA256: 61492d38a0ceaae7b4784820810f9717454a0b4413a9f20ced595122eae3111f

win64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240305/riscv32-esp-elf-13.2.0_20240305-x86_64-w64-mingw32.zip

SHA256: e1e63f1926b9c643bc1de72e30cc79fc2079ad169546669e55836efbcc559d11

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.24.0/cmake-3.24.0-linux-x86_64.tar.gz

SHA256: 726f88e6598523911e4bce9b059dc20b851aa77f97e4cc5573f4e42775a5c16f

linux-arm64

optional

https://github.com/Kitware/CMake/releases/download/v3.24.0/cmake-3.24.0-linux-aarch64.tar.gz

SHA256: 50c3b8e9d3a3cde850dd1ea143df9d1ae546cbc5e74dc6d223eefc1979189651

linux-armel

optional

https://dl.espressif.com/dl/cmake/cmake-3.24.0-Linux-armv7l.tar.gz

SHA256: 7dc787ef968dfef92491a4f191b8739ff70f8a649608b811c7a737b52481beb0

linux-armhf

optional

https://dl.espressif.com/dl/cmake/cmake-3.24.0-Linux-armv7l.tar.gz

SHA256: 7dc787ef968dfef92491a4f191b8739ff70f8a649608b811c7a737b52481beb0

macos

optional

https://github.com/Kitware/CMake/releases/download/v3.24.0/cmake-3.24.0-macos-universal.tar.gz

SHA256: 3e0cca74a56d9027dabb845a5a26e42ef8e8b33beb1655d6a724187a345145e4

macos-arm64

optional

https://github.com/Kitware/CMake/releases/download/v3.24.0/cmake-3.24.0-macos-universal.tar.gz

SHA256: 3e0cca74a56d9027dabb845a5a26e42ef8e8b33beb1655d6a724187a345145e4

win32

required

https://github.com/Kitware/CMake/releases/download/v3.24.0/cmake-3.24.0-windows-x86_64.zip

SHA256: b1ad8c2dbf0778e3efcc9fd61cd4a962e5c1af40aabdebee3d5074bcff2e103c

win64

required

https://github.com/Kitware/CMake/releases/download/v3.24.0/cmake-3.24.0-windows-x86_64.zip

SHA256: b1ad8c2dbf0778e3efcc9fd61cd4a962e5c1af40aabdebee3d5074bcff2e103c

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-20240318/openocd-esp32-linux-amd64-0.12.0-esp32-20240318.tar.gz

SHA256: cf26c5cef4f6b04aa23cd2778675604e5a74a4ce4d8d17b854d05fbcb782d52c

linux-arm64

required

https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240318/openocd-esp32-linux-arm64-0.12.0-esp32-20240318.tar.gz

SHA256: 9b97a37aa2cab94424a778c25c0b4aa0f90d6ef9cda764a1d9289d061305f4b7

linux-armel

required

https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240318/openocd-esp32-linux-armel-0.12.0-esp32-20240318.tar.gz

SHA256: b7e82776ec374983807d3389df09c632ad9bc8341f2075690b6b500319dfeaf4

linux-armhf

required

https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240318/openocd-esp32-linux-armhf-0.12.0-esp32-20240318.tar.gz

SHA256: 16f8f65f12e5ba034d328cda2567d6851a2aceb3c957d577f89401c2e1d3f93a

macos

required

https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240318/openocd-esp32-macos-0.12.0-esp32-20240318.tar.gz

SHA256: b16c3082c94df1079367c44d99f7a8605534cd48aabc18898e46e94a2c8c57e7

macos-arm64

required

https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240318/openocd-esp32-macos-arm64-0.12.0-esp32-20240318.tar.gz

SHA256: 534ec925ae6e35e869e4e4e6e4d2c4a1eb081f97ebcc2dd5efdc52d12f4c2f86

win32

required

https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240318/openocd-esp32-win32-0.12.0-esp32-20240318.zip

SHA256: d379329eba052435173ab0d69c9b15bc164a6ce489e2a67cd11169d2dabff633

win64

required

https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240318/openocd-esp32-win32-0.12.0-esp32-20240318.zip

SHA256: d379329eba052435173ab0d69c9b15bc164a6ce489e2a67cd11169d2dabff633

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.11.1/ninja-linux.zip

SHA256: b901ba96e486dce377f9a070ed4ef3f79deb45f4ffe2938f8e7ddc69cfb3df77

macos

optional

https://github.com/ninja-build/ninja/releases/download/v1.11.1/ninja-mac.zip

SHA256: 482ecb23c59ae3d4f158029112de172dd96bb0e97549c4b1ca32d8fad11f873e

macos-arm64

optional

https://github.com/ninja-build/ninja/releases/download/v1.11.1/ninja-mac.zip

SHA256: 482ecb23c59ae3d4f158029112de172dd96bb0e97549c4b1ca32d8fad11f873e

win64

required

https://github.com/ninja-build/ninja/releases/download/v1.11.1/ninja-win.zip

SHA256: 524b344a1a9a55005eaf868d991e090ab8ce07fa109f1820d40e74642e289abc

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.8/ccache-4.8-windows-x86_64.zip

SHA256: a2b3bab4bb8318ffc5b3e4074dc25636258bc7e4b51261f7d9bef8127fda8309

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/20240305/esp-rom-elfs-20240305.tar.gz

SHA256: a26609b415710f0163d785850c769752717004059c129c472e9a0cbd54e0422c

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-8.2.0-20240122/qemu-xtensa-softmmu-esp_develop_8.2.0_20240122-x86_64-linux-gnu.tar.xz

SHA256: e7c72ef5705ad1444d391711088c8717fc89f42e9bf6d1487f9c2a326b8cfa83

linux-arm64

optional

https://github.com/espressif/qemu/releases/download/esp-develop-8.2.0-20240122/qemu-xtensa-softmmu-esp_develop_8.2.0_20240122-aarch64-linux-gnu.tar.xz

SHA256: 77c83f2772f7d9b0c770722c2cebf3625d21d8eddbccfea6816f3d8f4982ea86

macos

optional

https://github.com/espressif/qemu/releases/download/esp-develop-8.2.0-20240122/qemu-xtensa-softmmu-esp_develop_8.2.0_20240122-x86_64-apple-darwin.tar.xz

SHA256: 897126a12aeac1cc7d8e9a50626cdf0bc4812fd4bceb77b07ff4a81b86deaaa4

macos-arm64

optional

https://github.com/espressif/qemu/releases/download/esp-develop-8.2.0-20240122/qemu-xtensa-softmmu-esp_develop_8.2.0_20240122-aarch64-apple-darwin.tar.xz

SHA256: 9134f6dc653c6dd556a6c9c2d80b9eca0c437a8f625e994f9285aadf7b2e7d6f

win64

optional

https://github.com/espressif/qemu/releases/download/esp-develop-8.2.0-20240122/qemu-xtensa-softmmu-esp_develop_8.2.0_20240122-x86_64-w64-mingw32.tar.xz

SHA256: fc49844b506697542558d3fcb2fe64171b3d28f47e59000ebe8e198d32091d45

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-8.2.0-20240122/qemu-riscv32-softmmu-esp_develop_8.2.0_20240122-x86_64-linux-gnu.tar.xz

SHA256: 95ac86d7b53bf98b5ff19c33aa926189b849f5a0daf8f41e160bc86c5e31abd4

linux-arm64

optional

https://github.com/espressif/qemu/releases/download/esp-develop-8.2.0-20240122/qemu-riscv32-softmmu-esp_develop_8.2.0_20240122-aarch64-linux-gnu.tar.xz

SHA256: 4089f7958f753779e5b4c93fe2469d62850a1f209b0bda8b75d55fe4a61ca39b

macos

optional

https://github.com/espressif/qemu/releases/download/esp-develop-8.2.0-20240122/qemu-riscv32-softmmu-esp_develop_8.2.0_20240122-x86_64-apple-darwin.tar.xz

SHA256: e9cc3c1344f6bf1ffa3748a4c59d88f9005c2689cc0583458cea35409a73c923

macos-arm64

optional

https://github.com/espressif/qemu/releases/download/esp-develop-8.2.0-20240122/qemu-riscv32-softmmu-esp_develop_8.2.0_20240122-aarch64-apple-darwin.tar.xz

SHA256: b3f23e294cf325f92e5e8948583cc985d55d5d2ba3d79c04c9d09f080b62954d

win64

optional

https://github.com/espressif/qemu/releases/download/esp-develop-8.2.0-20240122/qemu-riscv32-softmmu-esp_develop_8.2.0_20240122-x86_64-w64-mingw32.tar.xz

SHA256: 36008768c7ce91927e73de5e4298625087c01208e6122d886e578d400fd93b5c