中文版
ESP-IDF 是 Windows、Linux 和 macOS 上支持的 Espressif SoC 开发框架。
请阅读支持政策和文档,了解有关 ESP-IDF 版本的更多信息。
请参阅生命周期终止公告,了解有关已停止支持的 ESP-IDF 版本的信息。
下表显示了 Espressif SoC 的 ESP-IDF 支持,其中 和 分别表示预览状态和支持。预览支持通常有时间限制,并且适用于芯片的 Beta 版本。请使用已支持所需 SoC 的 ESP-IDF 版本。
芯片 | v5.0 | v5.1 | v5.2 | v5.3 | v5.4 | |
---|---|---|---|---|---|---|
ESP32 | ||||||
ESP32-S2 | ||||||
ESP32-C3 | ||||||
ESP32-S3 | 公告 | |||||
ESP32-C2 | 公告 | |||||
ESP32-C6 | 公告 | |||||
ESP32-H2 | 公告 | |||||
ESP32-P4 | 公告 | |||||
ESP32-C5 | 公告 | |||||
ESP32-C61 | 公告 |
一系列芯片有不同的修订版本。有关 ESP-IDF 与芯片修订版之间的兼容性的详细信息,请参阅乐鑫 SoC 的 ESP-IDF 版本与修订版之间的兼容性。
RTOS SDK 支持 2016 年之前发布的 Espressif SoC(ESP8266 和 ESP8285)。
请参阅 https://idf.espressif.com/,获取有关如何根据您使用的芯片设置 ESP-IDF 的详细说明的链接。
注意:每个 SoC 系列和每个 ESP-IDF 版本都有自己的文档。请参阅版本部分,了解如何查找文档以及如何查看 ESP-IDF 的特定版本。
ESP-IDF 使用相对位置作为其子模块 URL (.gitmodules)。所以他们链接到 GitHub。如果 ESP-IDF 分叉到不在 GitHub 上的 Git 存储库,则需要在 git clone 之后运行脚本 tools/set-submodules-to-github.sh。
该脚本为所有子模块设置绝对 URL,从而允许git submodule update --init --recursive
完成。如果从 GitHub 克隆 ESP-IDF,则不需要此步骤。
除了入门中提到的 esp-idf-template 项目之外,ESP-IDF 在示例目录中还附带了一些示例项目。
找到要使用的项目后,更改到其目录,然后就可以配置和构建它。
要基于示例启动您自己的项目,请将示例项目目录复制到 ESP-IDF 目录之外。
有关详细的设置指南,请参阅上面的入门指南链接。这是使用 ESP-IDF 项目时常用命令的快速参考:
(有关所需步骤的完整列表以及更多详细信息,请参阅上面列出的入门指南。)
安装入门指南中提到的主机构建依赖项。
运行安装脚本以设置构建环境。这些选项包括适用于 Windows 的install.bat
或install.ps1
,以及适用于 Unix shell 的install.sh
或install.fish
。
在使用 ESP-IDF 之前,在 Windows 上运行导出脚本 ( export.bat
) 或在每个 shell 环境中在 Unix 上获取它 ( source export.sh
)。
idf.py set-target <chip_name>
将项目的目标设置为<chip_name>
。运行不带任何参数的idf.py set-target
以查看支持的目标列表。
idf.py menuconfig
打开一个基于文本的配置菜单,您可以在其中配置项目。
idf.py build
...将编译应用程序、引导加载程序并根据配置生成分区表。
构建完成后,它将打印一条命令行以使用 esptool.py 来刷新芯片。不过,您也可以通过运行以下命令自动执行此操作:
idf.py -p PORT flash
将 PORT 替换为您的串行端口名称(例如 Windows 上的COM3
、Linux 上的/dev/ttyUSB0
或 MacOS 上的/dev/cu.usbserial-X
。如果省略-p
选项, idf.py flash
将尝试刷新第一个可用的串行端口。
这会将整个项目(应用程序、引导加载程序和分区表)闪存到新芯片。可以使用idf.py menuconfig
配置串口闪烁的设置。
在运行idf.py flash
之前,您不需要运行idf.py build
, idf.py flash
会自动重建任何需要它的东西。
idf.py monitor
目标使用 esp-idf-monitor 工具来显示 Espressif SoC 的串行输出。 esp-idf-monitor 还具有一系列功能来解码崩溃输出并与设备交互。查看文档页面了解详细信息。
通过键入 Ctrl-] 退出监视器。
要一次性构建、刷新和监视输出,您可以运行:
idf.py flash monitor
初始刷新后,您可能只想构建和刷新您的应用程序,而不是引导加载程序和分区表:
idf.py app
- 仅构建应用程序。
idf.py app-flash
- 仅刷新应用程序。
如果任何源文件发生更改, idf.py app-flash
将自动重建应用程序。
(在正常开发中,如果引导加载程序和分区表没有更改,每次都重新刷新它们并没有什么坏处。)
idf.py flash
目标不会擦除整个 flash 内容。然而,有时将设备设置回完全擦除状态很有用,特别是在更改分区表或更新 OTA 应用程序时。要擦除整个闪存,请运行idf.py erase-flash
。
这可以与其他目标结合使用,即idf.py -p PORT erase-flash flash
将擦除所有内容,然后重新刷新新的应用程序、引导加载程序和分区表。
最新版本的文档:https://docs.espressif.com/projects/esp-idf/。本文档是从此存储库的 docs 目录构建的。
ESP-IDF 关键概念和资源初学者指南
esp32.com 论坛是一个提出问题和查找社区资源的地方。
如果您发现错误或有功能请求,请检查 github 上的问题部分。请在打开新问题之前检查现有问题。
如果您有兴趣为 ESP-IDF 做出贡献,请查看贡献指南。