可下载的 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_20221002/xtensa-esp-elf-gdb-12.1_20221002-x86_64-linux-gnu.tar.gz

SHA256: d056f2435ef05cccadac5d8fcefa3efd8f8c456c3d853f5eba1edb501acfe4f7

linux-arm64

required

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

SHA256: 7fc9674cc4f4c5e7bc94ca05bc5deaaa4c4bbcc972a9caee6fcd6a872c804c02

linux-armel

required

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

SHA256: 68118ff36e9dd2284d92a7a529d0e2a8d20f6426036a0736fa1147935614ece2

linux-armhf

required

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

SHA256: 72d75d9bb9a09d0696aa86628b2dd1851755216b1b315743189ea37228e5c72f

linux-i686

required

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

SHA256: cf6cac8ed70726d390d30713d537754544872715e1b70a8a4a28b5dc616193b9

macos

required

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

SHA256: 417fcf8d1b596b9481603d6987def1d6cfcebdb9739f53940887334a7de855fa

macos-arm64

required

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

SHA256: 95d6ed2311d6a72bf349e152d096aeeb151f9c5989bfa3120facb1c99e879196

win32

required

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

SHA256: 642b6a135c38ff1d5e54ad2c29469b769f8e1b101dab363d06101b02284bb979

win64

required

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

SHA256: 2d958570ff6aa69ed32cbb076cbaf303349a26b3301a7c4628be8d7ad39cf9f1

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

SHA256: f0cf0821eaac7e8cf2c63b14f2b69d612f4f8c266b29d02d5547b7d7cbbd0e11

linux-arm64

required

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

SHA256: 6812344dfb5c50a81d2fd8354463516f0aa5f582e8ab406cbaeca8722b45fa94

linux-armel

required

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

SHA256: b73042b8e1df5a3fc8008ec3cd000ef579f155d72a66c6ade1d48906d843e738

linux-armhf

required

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

SHA256: 9dc5334042a169606d32ee454d35d93d216a24df027e4b0830ab268a8999db2d

linux-i686

required

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

SHA256: 3f07a1b8dc87127a1a6bec6fbace4f8daca44755356f0692e9a5d4c8c4bfd81d

macos

required

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

SHA256: bb139229f9a4998cab9cfb617d3ecb05b77cbfa9a3a59c54969035f1b4007487

macos-arm64

required

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

SHA256: f6513b57f28245497f9c39a201f3f6444d4180e16b39765c629e01036286c0e6

win32

required

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

SHA256: 8287fa2891e8d032e8283210048d653705791cda31504369418288d3e4753dd6

win64

required

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

SHA256: 9debae1135df8f5868a9d945468f0480cdaab25f77ead6a55cc85142c4487abd

xtensa-esp32-elf

Toolchain for Xtensa (ESP32) 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-12.2.0_20230208/xtensa-esp32-elf-12.2.0_20230208-x86_64-linux-gnu.tar.xz

SHA256: 4d2e02ef47f1a93a4dcfdbaecd486adfaab4c0e26deea2c18d6385527f39f864

linux-arm64

required

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

SHA256: 9e211a182b6ea0396a41c78f52f51d964e7875fe274ea9c81111bf0dbc90c516

linux-armel

required

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

SHA256: 2ddd91fb98b79b30042b7918eef60cf10c7bd5b1da853e83b65f293b96dec800

linux-armhf

required

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

SHA256: a683a468555dcbcb6ce32a190842110d6f853d4d6104d61cf0bc9dd50c6be1e6

linux-i686

required

https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32-elf-12.2.0_20230208-i686-linux-gnu.tar.xz

SHA256: 292b19ea6186508a923fb6fd0103977e001d4eb8e77836c7e3d6ce6e5fa7d305

macos

required

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

SHA256: b09d87fdb1dc32cd1d718935065ef931b101a14df6b17be56748e52640955bff

macos-arm64

required

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

SHA256: f50acab2b216e9475dc5313b3e4b424cbc70d0abd23ba1818aff4a019165da8e

win32

required

https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32-elf-12.2.0_20230208-i686-w64-mingw32.zip

SHA256: 62bb6428d107ed3f44c212c77ecf24804b74c97327b0f0ad2029c656c6dbd6ee

win64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32-elf-12.2.0_20230208-x86_64-w64-mingw32.zip

SHA256: 8febfe4a6476efc69012390106c8c660a14418f025137b0513670c72124339cf

xtensa-esp32s2-elf

Toolchain for Xtensa (ESP32-S2) 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-12.2.0_20230208/xtensa-esp32s2-elf-12.2.0_20230208-x86_64-linux-gnu.tar.xz

SHA256: a1bd8f0252aae02cff2c289f742fbdbaa2c24644cc30e883d118253ea4df1799

linux-arm64

required

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

SHA256: 48e88053e92bab1bf8d6dbad7ddb4d140c537159d607a36e73e74e1f5f23c892

linux-armel

required

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

SHA256: 37cdd619fa56ce884570cedd00dd2f4a5eb9a1fce3755a2f4b9279d1136e47c1

linux-armhf

required

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

SHA256: 99a7b34e8826d0c0b5703e5a4e7db8716b9738fa4f03eed759f383a10617e788

linux-i686

required

https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32s2-elf-12.2.0_20230208-i686-linux-gnu.tar.xz

SHA256: d9b79e9e3204fa8e40f9942ea1197a83ae1527e3711a45bc17171ff5fec43e54

macos

required

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

SHA256: e7b2fbacd8186b24d1b1264ad6cf639f476d51f5d908fb79504abfe6281d3c8c

macos-arm64

required

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

SHA256: d2c997ce5f43a93c3787c224aa8742b0cd87443794514ab2153cd629665506f0

win32

required

https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32s2-elf-12.2.0_20230208-i686-w64-mingw32.zip

SHA256: 1e6dac5162ab75f94b88c47ebeabb6600c652fb4f615ed07c1724d037c02fd19

win64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32s2-elf-12.2.0_20230208-x86_64-w64-mingw32.zip

SHA256: 8a785cc4e0838cebe404f82c0ead7a0f9ac5fabc660a742e33a41ddac6326cc1

xtensa-esp32s3-elf

Toolchain for Xtensa (ESP32-S3) 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-12.2.0_20230208/xtensa-esp32s3-elf-12.2.0_20230208-x86_64-linux-gnu.tar.xz

SHA256: 29b5ea6b30d98231f0c17f2327404109e0abf59b48d0f2890d9d9899678a89a3

linux-arm64

required

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

SHA256: 30a1fed3ab6341feb1ae986ee55f227df6a594293ced13c65a0136eb4681087d

linux-armel

required

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

SHA256: c180836bf43b90b4b7c24166a3bd4156c74c8e58bb85761aa58da98d076e6f48

linux-armhf

required

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

SHA256: 4cc1adee141de67ffb7e94e53d30bf4e120ef07d4063fecc2153c69ad4b54f7f

linux-i686

required

https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32s3-elf-12.2.0_20230208-i686-linux-gnu.tar.xz

SHA256: 9a968f58085c66b41ca13af8d652e5250df0f8d8e17988e34846be9c76672cab

macos

required

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

SHA256: 30375231847a9070e4e0acb3102b7d35a60448a55536bfa113c677c449da3eef

macos-arm64

required

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

SHA256: ae9a1a3e12c0b6f6f28a3878f5964e91a410350248586c90db94f8bdaeef7695

win32

required

https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32s3-elf-12.2.0_20230208-i686-w64-mingw32.zip

SHA256: 3ddf51774817e815e5d41c312a90c1159226978fb45fd0d4f7085c567f8b73ab

win64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32s3-elf-12.2.0_20230208-x86_64-w64-mingw32.zip

SHA256: 1d15ca65e3508388a86d8bed3048c46d07538f5bc88d3e4296f9c03152087cd1

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

SHA256: 21694e5ee506f5e52908b12c6b5be7044d87cf34bb4dfcd151d0a10ea09dedc1

linux-arm64

required

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

SHA256: aefbf1e6f2c91a10e8995399d2003502e167e8c95e77f40957309e843700906a

linux-armel

required

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

SHA256: 9740cbddb4cb5e05382991c83d8c96a5fb7d87046449e77791b3b0de29a3ddd8

linux-armhf

required

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

SHA256: ee6210b1068802ed8486543c1f313cb8ac64571c20d51bf50fdb34ad4c457018

linux-i686

required

https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/riscv32-esp-elf-12.2.0_20230208-i686-linux-gnu.tar.xz

SHA256: 9207fe3d1413cf29fad6dc4bdc9a35f538b0b2c48a70e9a89d2f0e930c346aed

macos

required

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

SHA256: 78cd1afe458fceb7c2657fe346edb0ecfde3b8743ccf7a7a7509c456cad9de9a

macos-arm64

required

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

SHA256: 6c0a4151afb258766911fc7bcfe5f4fee6ee2cd9a5ff25542bc1228c1203a3f9

win32

required

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

SHA256: a5dfbb6dbf6fc6c6ea9beb2723af059ba3c5b2c86c2f0dc3b21afdc7bb229bf5

win64

required

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

SHA256: 9deae9e0013b2f7bbf017f9c8135755bfa89522f337c7dca35872bf12ec08176

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-v2.35_20220830/esp32ulp-elf-2.35_20220830-linux-amd64.tar.gz

SHA256: b1f7801c3a16162e72393ebb772c0cbfe4d22d907be7c2c2dac168736e9195fd

linux-arm64

required

https://github.com/espressif/binutils-gdb/releases/download/esp32ulp-elf-v2.35_20220830/esp32ulp-elf-2.35_20220830-linux-arm64.tar.gz

SHA256: d6671b31bab31b9b13aea25bb7d60f15484cb8bf961ddbf67a62867e5563eae5

linux-armel

required

https://github.com/espressif/binutils-gdb/releases/download/esp32ulp-elf-v2.35_20220830/esp32ulp-elf-2.35_20220830-linux-armel.tar.gz

SHA256: e107e7a9cd50d630b034f435a16a52db5a57388dc639a99c4c393c5e429711e9

linux-armhf

required

https://github.com/espressif/binutils-gdb/releases/download/esp32ulp-elf-v2.35_20220830/esp32ulp-elf-2.35_20220830-linux-armhf.tar.gz

SHA256: 6c6dd25477b2e758d4669da3774bf664d1f012442c880f17dfdf0339e9c3dae9

linux-i686

required

https://github.com/espressif/binutils-gdb/releases/download/esp32ulp-elf-v2.35_20220830/esp32ulp-elf-2.35_20220830-linux-i686.tar.gz

SHA256: beb9b6737c975369b6959007739c88f44eb5afbb220f40737071540b2c1a9064

macos

required

https://github.com/espressif/binutils-gdb/releases/download/esp32ulp-elf-v2.35_20220830/esp32ulp-elf-2.35_20220830-macos.tar.gz

SHA256: 5a952087b621ced16af1e375feac1371a61cb51ab7e7b44cbefb5afda2d573de

macos-arm64

required

https://github.com/espressif/binutils-gdb/releases/download/esp32ulp-elf-v2.35_20220830/esp32ulp-elf-2.35_20220830-macos-arm64.tar.gz

SHA256: 73bda8476ef92d4f4abee96519abbba40e5ee32f368427469447b83cc7bb9b42

win32

required

https://github.com/espressif/binutils-gdb/releases/download/esp32ulp-elf-v2.35_20220830/esp32ulp-elf-2.35_20220830-win32.zip

SHA256: 77344715ea7d7a7a9fd0b27653f880efaf3bcc1ac843f61492d8a0365d91f731

win64

required

https://github.com/espressif/binutils-gdb/releases/download/esp32ulp-elf-v2.35_20220830/esp32ulp-elf-2.35_20220830-win64.zip

SHA256: 525e5b4c8299869a3fdddb51baad76612c5c104bd96952ae6460ad7e5b5a4e21

cmake

CMake build system

On Linux and macOS, it is recommended to install CMake using the OS package manager. 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-20230419/openocd-esp32-linux-amd64-0.12.0-esp32-20230419.tar.gz

SHA256: 5144e7516cd75a2152b35ecae0a400f7d3d4424c2488fbacc49433564f54c70d

linux-arm64

required

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

SHA256: 1c4d900c738fe00730c6033abb6cf1cc6587717dbeee291d5908272d153d329a

linux-armel

required

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

SHA256: 293258fd67618dd352e1096137ad9f2b801926eaf74ffcd570540ae94ad8ee5c

linux-armhf

required

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

SHA256: b87cfb291476fc2e34468ea9175a9e195c6f1fce88e643c955c87ccc58bfb1f8

macos

required

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

SHA256: 621aad7d011c6817cde9570dfea42c7bcc699458bf43c37706cb4c2f6475a247

macos-arm64

required

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

SHA256: 3af7eac3a7de3939731ec4c13fb5d72a8e6ce5e5d274bb9697f5d93039561e42

win32

required

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

SHA256: f2cb3d9cacfe789c20d3272af846d726a062ce8f2e4ee142bddb27501d7dd7a7

win64

required

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

SHA256: f2cb3d9cacfe789c20d3272af846d726a062ce8f2e4ee142bddb27501d7dd7a7

ninja

Ninja build system

On Linux and macOS, it is recommended to install ninja using the OS package manager. 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://dl.espressif.com/dl/ninja-1.10.2-linux64.tar.gz

SHA256: 32bb769de4d57aa7ee0e292cfcb7553e7cc8ea0961f7aa2b3aee60aa407c4033

macos

optional

https://dl.espressif.com/dl/ninja-1.10.2-osx.tar.gz

SHA256: 847bb1ca4bc16d8dba6aeed3ecb5055498b86bc68c364c37583eb5738bb440f1

macos-arm64

optional

https://dl.espressif.com/dl/ninja-1.10.2-osx.tar.gz

SHA256: 847bb1ca4bc16d8dba6aeed3ecb5055498b86bc68c364c37583eb5738bb440f1

win64

required

https://dl.espressif.com/dl/ninja-1.10.2-win64.zip

SHA256: bbde850d247d2737c5764c927d1071cbb1f1957dcabda4a130fa8547c12c695f

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

SHA256: 24bcc8cb3287175d4a0bfd65e04bf7ef592a10f022acffca0d5e87eee05996d4