ESP-IDF 是 Windows、Linux 和 macOS 上支援的 Espressif SoC 開發框架。
下表顯示了 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 專案時常用指令的快速參考:
(有關所需步驟的完整列表以及更多詳細信息,請參閱上面列出的入門指南。)
install.bat
或install.ps1
,以及適用於 Unix shell 的install.sh
或install.fish
。export.bat
) 或在每個 shell 環境中在 Unix 上取得它 ( source export.sh
)。 idf.py set-target
將專案的目標設定為
。執行不帶任何參數的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 做出貢獻,請查看貢獻指南。