本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Espressif ESP32-DevKitC 和 ESP-WROVER-KIT 入門
重要
這是 FreeRTOS 使用者指南的封存版本,可與 FreeRTOS 版本 202012.00 搭配使用。如需本文件的最新版本,請參閱 FreeRTOS 使用者指南。
遵循本教學課程,開始使用配備 ESP32-WROOM-32, ESP32-SOLO-132-WROOM-32、ESP32-SOLO-1 或 ESP-WROVER 模組的 Espressif ESP32-DevKitC,以及 ESP-WROVER-KIT-VB。若要從合作夥伴裝置目錄中的 AWS 合作夥伴購買,請使用以下連結:
FreeRTOS 支援這些版本的開發板。
如需這些主機板最新版本的詳細資訊,請參閱 Espressif 網站上的 ESP32-DevKitC V4
注意
目前,ESP32-WROVER-KIT 和 ESP DevKitC 的 FreeRTOS 連接埠不支援對稱多處理 (SMP) 功能。
概觀
本教學課程將指引您完成下列步驟:
-
將電路板連接至主機
-
在主機機器上安裝軟體,以開發和偵錯微型控制器主機板的內嵌應用程式
-
將 FreeRTOS 示範應用程式跨編譯至二進位映像
-
將應用程式二進位映像載入您的電路板,然後執行應用程式
-
透過序列連線與在電路板上執行的應用程式互動,以用於監控和偵錯
先決條件
在 Espressif 電路板上開始使用 FreeRTOS 之前,您必須設定 AWS 您的帳戶和許可。
註冊 AWS 帳戶
如果您沒有 AWS 帳戶,請完成下列步驟來建立一個。
註冊 AWS 帳戶
請遵循線上指示進行。
註冊程序的一部分包括接聽電話或文字訊息,並在電話鍵盤上輸入驗證碼。
當您註冊 時 AWS 帳戶,AWS 帳戶根使用者會建立 。根使用者有權存取該帳戶中的所有 AWS 服務 和資源。作為安全最佳實務,請將管理存取權指派給使用者,並且僅使用根使用者來執行需要根使用者存取權的任務。
AWS 會在註冊程序完成後傳送確認電子郵件給您。您可以隨時登錄 https://aws.amazon.com/
建立具有管理存取權的使用者
註冊 後 AWS 帳戶,請保護 AWS 帳戶根使用者、啟用 AWS IAM Identity Center和建立管理使用者,以免將根使用者用於日常任務。
保護您的 AWS 帳戶根使用者
-
選擇根使用者並輸入 AWS 帳戶 您的電子郵件地址,以帳戶擁有者AWS Management Console
身分登入 。在下一頁中,輸入您的密碼。 如需使用根使用者登入的說明,請參閱 AWS 登入 使用者指南中的以根使用者身分登入。
-
若要在您的根使用者帳戶上啟用多重要素驗證 (MFA)。
如需說明,請參閱《IAM 使用者指南》中的為您的 AWS 帳戶 根使用者 (主控台) 啟用虛擬 MFA 裝置。
建立具有管理存取權的使用者
-
啟用 IAM Identity Center。
如需指示,請參閱《AWS IAM Identity Center 使用者指南》中的啟用 AWS IAM Identity Center。
-
在 IAM Identity Center 中,將管理存取權授予使用者。
如需使用 IAM Identity Center 目錄 做為身分來源的教學課程,請參閱AWS IAM Identity Center 《 使用者指南》中的使用預設值設定使用者存取權 IAM Identity Center 目錄。
以具有管理存取權的使用者身分登入
-
若要使用您的 IAM Identity Center 使用者簽署,請使用建立 IAM Identity Center 使用者時傳送至您電子郵件地址的簽署 URL。
如需使用 IAM Identity Center 使用者登入的說明,請參閱AWS 登入 《 使用者指南》中的登入 AWS 存取入口網站。
指派存取權給其他使用者
若要提供存取權,請新增權限至您的使用者、群組或角色:
-
中的使用者和群組 AWS IAM Identity Center:
建立權限合集。請按照 AWS IAM Identity Center 使用者指南 中的 建立權限合集 說明進行操作。
-
透過身分提供者在 IAM 中管理的使用者:
建立聯合身分的角色。遵循「IAM 使用者指南」的為第三方身分提供者 (聯合) 建立角色中的指示。
-
IAM 使用者:
-
建立您的使用者可擔任的角色。請按照「IAM 使用者指南」的為 IAM 使用者建立角色中的指示。
-
(不建議) 將政策直接附加至使用者,或將使用者新增至使用者群組。請遵循 IAM 使用者指南的新增許可到使用者 (主控台) 中的指示。
-
注意
FreeRTOS 202012.00 版本支援 ESP-IDF v3.3。如果您使用的是較新版本的 FreeRTOS,請遵循 IDFv4.2 的特定說明,網址為 ESP-IDF 4.2 版入門。
ESP-IDF 3.3 版入門
本節說明如何在 Espressif 硬體上使用 ESP-IDF v3.3。若要使用 ESP-IDF 4.2 版,請參閱 ESP-IDF 4.2 版入門。
設定 Espressif 硬體
如需設定 ESP32-DevKitC 開發板硬體的詳細資訊,請參閱 ESP32-DevKitC V4 入門指南
如需設定 ESP-WROVER-KIT 開發板硬體的相關資訊,請參閱 ESP-WROVER-KIT V4.1 入門指南
重要
當您到達 Espressif 指南的入門區段時,請停止,然後遵循以下步驟。
設定開發環境
若要與您的主機板通訊,您必須下載並安裝工具鏈。
設定工具鏈
注意
ESP-IDF v3.3 不支援最新版本的 ESP32 編譯器。如果您已安裝最新版本的 ESP32 編譯器,則應將其解除安裝,並使用工具鏈安裝中包含的相容版本編譯器。請參閱本節中的連結。若要檢查編譯器的版本,請執行下列命令。
xtensa-esp32-elf-gcc --version
若要設定工具鏈,請遵循主機機器作業系統的下列指示:
重要
當您達到後續步驟下的「取得 ESP-IDF」指示時,請停止,然後返回此頁面的指示。
如果您遵循後續步驟下的「取得 ESP-IDF」指示,現在或之前,您應該從系統清除IDF_PATH
環境變數,然後再繼續。如果您遵循「取得 ESP-IDF」指示,則會自動設定此環境變數。
安裝 CMake
需要 CMake 建置系統才能建置此裝置的 FreeRTOS 示範和測試應用程式。FreeRTOS 支援 3.13 版和更新版本。
您可以從 CMake.org
如需搭配 FreeRTOS 使用 CMake 的詳細資訊,請參閱 搭配 FreeRTOS 使用 CMake 。
建立序列連線
若要在您的主機與 ESP32-DevKitC 之間建立序列連線,您必須安裝 CP210x USB to UART Bridge VCP 驅動程式。您可以從 Silicon Labs
若要在您的主機與 ESP32-WROVER-KIT 之間建立序列連線,您必須安裝一些 FTDI virtual COM 連接埠驅動程式。您可以從 FTDI
如需詳細資訊,請參閱建立與 ESP32 的序列連線
下載並設定 FreeRTOS
設定環境後,您可以從 GitHub
設定 FreeRTOS 示範應用程式
-
如果您正在執行 macOS 或 Linux,請開啟終端機提示。如果您正在執行 Windows,請開啟
mingw32.exe
。MinGW是原生 Microsoft Windows 應用程式的最小開發環境。 -
若要確認您已安裝 Python 2.7.10 或更新版本,請執行
python --version
安裝的版本即會顯示。如果您沒有安裝 Python 2.7.10 或更新版本,您可以從 Python
網站安裝。 -
您需要 AWS Command Line Interface (AWS CLI) 來執行 AWS IoT 命令。如果您正在執行 Windows,請使用 在 AWS CLI mingw32 環境中easy_install awscli安裝 。
如果您正在執行 macOS 或 Linux,請參閱安裝 AWS CLI。
-
AWS CLI 使用您的 AWS 存取金鑰 ID、私密存取金鑰和 AWS 區域執行aws configure和設定 。如需詳細資訊,請參閱設定 AWS CLI。
-
使用下列命令來安裝適用於 Python (boto3) 的 AWS SDK:
-
在 Windows 的 mingw32 環境中,執行
easy_install boto3
-
在 macOS 或 Linux 上執行
pip install tornado nose --user
然後執行
pip install boto3 --user
-
FreeRTOS 包含SetupAWS.py
指令碼,可讓您更輕鬆地設定要連線的 Espressif 電路板 AWS IoT。若要設定此指令碼,請開啟
並設定下列屬性:freertos
/tools/aws_config_quick_start/configure.json
afr_source_dir
-
電腦上
freertos
目錄的完整路徑。請確定您使用斜線來指定此路徑。 thing_name
-
您要指派給代表電路板之 AWS IoT 物件的名稱。
wifi_ssid
-
您的 Wi-Fi 網路 SSID。
wifi_password
-
您 Wi-Fi 網路的密碼。
wifi_security
-
您 Wi-Fi 網路的安全類型。
以下是有效的安全類型:
-
eWiFiSecurityOpen
(開放,不具安全性) -
eWiFiSecurityWEP
(WEP 安全性) -
eWiFiSecurityWPA
(WPA 安全性) -
eWiFiSecurityWPA2
(WPA2 安全性)
-
執行組態指令碼
-
如果您正在執行 macOS 或 Linux,請開啟終端機提示。如果您正在執行 Windows,請開啟
mingw32.exe
。 -
導覽至
目錄並執行freertos
/tools/aws_config_quick_startpython SetupAWS.py setup
指令碼會執行以下操作:
-
建立 IoT 實物、憑證及政策
-
將 IoT 政策連接到憑證,並將憑證連接到 AWS IoT 實物
-
使用 AWS IoT 端點、Wi-Fi SSID 和登入資料填入
aws_clientcredential.h
檔案 -
格式化您的憑證與私密金鑰,並將其寫入
aws_clientcredential_keys.h
標頭檔案注意
憑證為硬式編碼,僅供示範之用。生產層級應用程式必須將這些檔案存放在安全的位置。
如需 的詳細資訊SetupAWS.py
,請參閱 README.md
目錄中的 。freertos
/tools/aws_config_quick_start
建置、刷新和執行 FreeRTOS 示範專案
您可以使用 CMake 來產生建置檔案、使用 Make 建置應用程式二進位,以及 Espressif 的 IDF 公用程式以刷新您的主機板。
在 Linux 和 MacOS 上建置 FreeRTOS (ESP-IDF 3.3 版)
如果您使用的是 Windows,請參閱 在 Windows 上建置 FreeRTOS (ESP-IDF 3.3 版)。
使用 CMake 來產生建置檔案,然後使用 Make 來建置應用程式。
使用 CMake 來產生示範應用程式的建置檔案
-
將目錄變更為 FreeRTOS 下載目錄的根目錄。
-
使用下列命令來產生建置檔案。
cmake -DVENDOR=espressif -DBOARD=esp32_wrover_kit -DCOMPILER=xtensa-esp32 -S . -B
your-build-directory
注意
如果您想要建置應用程式以進行偵錯,請將
-DCMAKE_BUILD_TYPE=Debug
旗標新增到此命令。如果您想要產生測試應用程式建置檔案,請新增
-DAFR_ENABLE_TESTS=1
旗標。Espressif 提供的程式碼會使用輕量型 IP (LWIP) 堆疊做為預設網路堆疊。若要改用 FreeRTOS+TCP 網路堆疊,請將
–DAFR_ESP_FREERTOS_TCP
旗標新增至 CMake 命令。若要為非供應商提供的程式碼新增 lwIP 相依性,請將以下幾行新增至自訂 Wi-Fi 元件
CMakeLists.txt
的 CMake 相依性檔案 。# Add a dependency on the bluetooth espressif component to the common component set(COMPONENT_REQUIRES lwip)
使用 Make 建置應用程式
-
將目錄變更為
build
目錄。 -
使用下列命令,透過 Make 建置應用程式。
make all -j4
注意
每次在
aws_demos
專案與aws_tests
專案之間切換時,您都必須使用 cmake 命令產生建置檔案。
在 Windows 上建置 FreeRTOS (ESP-IDF 3.3 版)
在 Windows 上,您必須指定用於 CMake 的建置產生器。若未指定,CMake 則會依預設使用 Visual Studio。Espressif 正式推薦 Ninja 建構系統,因為它適用於Windows、Linux 和 MacOS。您必須在原生 Windows 環境 (例如 cmd 或 PowerShell) 中執行 CMake 命令。不支援在虛擬 Linux 環境 (例如 MSYS2 或 WSL) 中執行 CMake 命令。
使用 CMake 來產生建置檔案,然後使用 Make 來建置應用程式。
使用 CMake 來產生示範應用程式的建置檔案
-
將目錄變更為 FreeRTOS 下載目錄的根目錄。
-
使用下列命令來產生建置檔案。
cmake -DVENDOR=espressif -DBOARD=esp32_wrover_kit -DCOMPILER=xtensa-esp32 -GNinja -S . -B
build-directory
注意
如果您想要建置應用程式以進行偵錯,請將
-DCMAKE_BUILD_TYPE=Debug
旗標新增到此命令。如果您想要產生測試應用程式建置檔案,請新增
-DAFR_ENABLE_TESTS=1
旗標。Espressif 提供的程式碼會使用輕量型 IP (LWIP) 堆疊做為預設網路堆疊。若要改用 FreeRTOS+TCP 網路堆疊,請將
–DAFR_ESP_FREERTOS_TCP
旗標新增至 CMake 命令。若要為非供應商提供的程式碼新增 lwIP 相依性,請將以下幾行新增至自訂 Wi-Fi 元件
CMakeLists.txt
的 CMake 相依性檔案 。# Add a dependency on the bluetooth espressif component to the common component set(COMPONENT_REQUIRES lwip)
建置應用程式
-
將目錄變更為
build
目錄。 -
叫用 Ninja 來建置應用程式。
ninja
或者,使用一般 CMake 界面來建置應用程式。
cmake --build
build-directory
注意
每次在
aws_demos
專案與aws_tests
專案之間切換時,您都必須使用 cmake 命令產生建置檔案。
快閃並執行 FreeRTOS (ESP-IDF v3.3)
本節說明如何在 Espressif 硬體上使用 ESP-IDF v3.3。若要使用 ESP-IDF 4.2 版,請參閱 ESP-IDF 4.2 版入門。
使用 Espressif 的 IDF 公用程式 (
) 刷新您的電路板、執行應用程式並查看日誌。freertos
/vendors/espressif/esp-idf/tools/idf.py
若要清除電路板的快閃記憶體,請前往
目錄並使用下列命令。freertos
./vendors/espressif/esp-idf/tools/idf.py erase_flash -B
build-directory
若要將應用程式二進位檔刷新至您的主機板,請使用 make
make flash
您也可以使用 IDF 指令碼來刷新您的電路板:
./vendors/espressif/esp-idf/tools/idf.py flash -B
build-directory
監控:
./vendors/espressif/esp-idf/tools/idf.py monitor -p /dev/ttyUSB1 -B
build-directory
注意
您可以結合這些命令。例如:
./vendors/espressif/esp-idf/tools/idf.py erase_flash flash monitor -p /dev/ttyUSB1 -B
build-directory
ESP-IDF 4.2 版入門
本節說明如何在 Espressif 硬體上使用 ESP-IDF v4.2。若要使用 ESP-IDF 3.3 版,請參閱 ESP-IDF 3.3 版入門。
注意
本教學課程中的 Linux 命令要求您使用 Bash shell。
設定 Espressif 硬體
如需有關設定 ESP32-DevKitC 開發板硬體的資訊,請參閱 ESP32-DevKitC V4 入門指南
如需有關設定 ESP-WROVER-KIT 開發板硬體的資訊,請參閱 ESP-WROVER-KIT V4.1 入門指南。
重要
當您到達 Espressif 指南的入門區段時,請停止,然後返回此頁面的指示。
設定開發環境
若要與您的主機板通訊,您必須下載並安裝工具鏈。
設定工具鏈
若要設定工具鏈,請遵循主機機器作業系統的下列指示:
重要
當您達到後續步驟下的「取得 ESP-IDF」指示時,請停止,然後返回此頁面的指示。
完成安裝 (Linux/MacOS)
ESP-IDF Windows 安裝程式會安裝所有必要工具。Linux 和 MacOS 平台需要額外的步驟來完成安裝。
-
開啟命令列視窗
-
導覽至 FreeRTOS 下載目錄,然後執行下列指令碼,為您的平台下載並安裝 espressif 工具鏈。
vendors/espressif/esp-idf/install.sh
-
使用下列命令,將 ESP-IDF 工具鏈工具新增至終端機的路徑。
source vendors/espressif/esp-idf/export.sh
建立序列連線
若要在主機機器與 ESP32-DevKitC 之間建立序列連線,您必須安裝 CP210x USB 至 UART Bridge VCP 驅動程式。您可以從 Silicon Labs
若要在主機機器與 ESP32-WROVER-KIT 之間建立序列連線,您必須安裝 FTDI 虛擬 COM 連接埠驅動程式。您可以從 FTDI
如需詳細資訊,請參閱建立與 ESP32 的序列連線
下載並設定 FreeRTOS
設定環境後,您可以從 GitHub
設定 FreeRTOS 示範應用程式
-
如果您正在執行 macOS 或 Linux,請開啟終端機提示。如果您正在執行 Windows,請開啟 mingw32.exe。( MinGW
是原生 Microsoft Windows 應用程式的最小開發環境。) -
若要確認您已安裝 Python3,請執行
python --version
安裝的版本即會顯示。如果您沒有安裝 Python 3.0.1 或更新版本,您可以從 Python
網站安裝。 -
您需要 AWS Command Line Interface (AWS CLI) 來執行 AWS IoT 命令。如果您正在執行 Windows,請使用 在 AWS CLI mingw32 環境中easy_install awscli安裝 。
如果您正在執行 macOS 或 Linux,請參閱安裝 AWS CLI。
-
執行
aws configure
並使用 AWS CLI 您的 AWS 存取金鑰 ID、私密存取金鑰和預設 AWS 區域來設定 。如需詳細資訊,請參閱設定 AWS CLI。
-
使用下列命令來安裝適用於 Python (boto3) 的 AWS SDK:
-
在 Windows 的 mingw32 環境中,執行
easy_install boto3
-
在 macOS 或 Linux 上執行
pip install tornado nose --user
然後執行
pip install boto3 --user
-
FreeRTOS 包含SetupAWS.py
指令碼,可讓您更輕鬆地設定要連線的 Espressif 電路板 AWS IoT。若要設定此指令碼,請開啟
並設定下列屬性:freertos
/tools/aws_config_quick_start/configure.json
afr_source_dir
-
電腦上
freertos
目錄的完整路徑。請確定您使用斜線來指定此路徑。 thing_name
-
您要指派給代表電路板之 AWS IoT 物件的名稱。
wifi_ssid
-
您的 Wi-Fi 網路 SSID。
wifi_password
-
您 Wi-Fi 網路的密碼。
wifi_security
-
您 Wi-Fi 網路的安全類型。
以下是有效的安全類型:
-
eWiFiSecurityOpen
(開放,不具安全性) -
eWiFiSecurityWEP
(WEP 安全性) -
eWiFiSecurityWPA
(WPA 安全性) -
eWiFiSecurityWPA2
(WPA2 安全性)
-
執行組態指令碼
-
如果您正在執行 macOS 或 Linux,請開啟終端機提示。如果您正在執行 Windows,請開啟
mingw32.exe
檔案。 -
導覽至
目錄並執行freertos
/tools/aws_config_quick_startpython SetupAWS.py setup
指令碼會執行以下操作:
-
建立 IoT 實物、憑證及政策
-
將 IoT 政策連接到憑證,並將憑證連接到 AWS IoT 實物
-
使用 AWS IoT 端點、Wi-Fi SSID 和登入資料填入
aws_clientcredential.h
檔案 -
格式化您的憑證與私密金鑰,並將其寫入
aws_clientcredential_keys.h
標頭檔案注意
憑證為硬式編碼,僅供示範之用。生產層級應用程式必須將這些檔案存放在安全的位置。
如需 的詳細資訊SetupAWS.py
,請參閱 README.md
目錄中的 。freertos
/tools/aws_config_quick_start
使用 idf.py 指令碼建置、刷新和執行 FreeRTOS 示範專案
您可以使用 Espressif 的 IDF 公用程式來產生建置檔案、建置應用程式二進位檔,以及刷新您的主機板。
在 Windows、Linux 和 MacOS (ESP-IDF v4.2) 上建置和刷新 FreeRTOS MacOS
使用 idf.py
指令碼建置專案,並將二進位檔刷入您的裝置。
注意
有些設定可能需要搭配 使用連接埠選項"-p
port-name
"idf.py
來指定正確的連接埠,如下列範例所示。
idf.py -p /dev/cu.usbserial-00101301B flash
建置和刷新專案
-
導覽至 FreeRTOS 下載目錄的根目錄。
-
在命令列視窗中,輸入下列命令,將 ESP-IDF 工具新增至終端機的 PATH。
Windows
vendors\espressif\esp-idf\export.bat
Linux/MacOS
source vendors/espressif/esp-idf/export.sh
-
在
build
目錄中設定 cmake,並使用下列命令建置韌體映像。idf.py -DVENDOR=espressif -DBOARD=esp32_wrover_kit -DCOMPILER=xtensa-esp32 build
您應該會看到類似以下的輸出。
Running cmake in directory /path/to/hello_world/build Executing "cmake -G Ninja --warn-uninitialized /path/to/hello_world"... Warn about uninitialized values. -- Found Git: /usr/bin/git (found version "2.17.0") -- Building empty aws_iot component due to configuration -- Component names: ... -- Component paths: ... ... (more lines of build system output) [527/527] Generating hello-world.bin esptool.py v2.3.1 Project build complete. To flash, run this command: ../../../components/esptool_py/esptool/esptool.py -p (PORT) -b 921600 write_flash --flash_mode dio --flash_size detect --flash_freq 40m 0x10000 build/hello-world.bin build 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/partition-table.bin or run 'idf.py -p PORT flash'
如果沒有錯誤,組建將產生韌體二進位 .bin 檔案。
-
使用以下命令清除開發板的快閃記憶體。
idf.py erase_flash
-
使用
idf.py
指令碼將應用程式二進位檔刷新到您的主機板。idf.py flash
-
使用下列命令來監控主機板序列埠的輸出。
idf.py monitor
注意
您可以在下列範例中結合這些命令,例如 。
idf.py erase_flash flash monitor
注意
對於某些主機機器設定,您必須在刷新電路板時指定連接埠,如下列範例所示。
idf.py erase_flash flash monitor -p
/dev/ttyUSB1
使用 CMake 建置和 Flash FreeRTOS
除了 IDF 開發套件提供的idf.py
指令碼來建置和執行程式碼之外,您也可以使用 CMake 建置專案。目前,它支援 Unix Makefiles 或 Ninja 組建系統。
建置和刷新專案
-
在命令列視窗中,導覽至 FreeRTOS 下載目錄的根目錄。
-
執行下列指令碼,將 ESP-IDF 工具新增至 shell 的 PATH。
Windows
vendors\espressif\esp-idf\export.bat
Linux/MacOS
source vendors/espressif/esp-idf/export.sh
-
輸入下列命令來產生建置檔案。
使用 Unix Makefiles
cmake -DVENDOR=espressif -DBOARD=esp32_wrover_kit -DCOMPILER=xtensa-esp32 -S . -B
./YOUR_BUILD_DIRECTORY
-DAFR_ENABLE_ALL_MODULES=1 -DAFR_ENABLE_TESTS=0使用 Ninja
cmake -DVENDOR=espressif -DBOARD=esp32_wrover_kit -DCOMPILER=xtensa-esp32 -S . -B
./YOUR_BUILD_DIRECTORY
-DAFR_ENABLE_ALL_MODULES=1 -DAFR_ENABLE_TESTS=0 -GNinja -
清除快閃記憶體,然後刷新電路板。
使用 Unix Makefiles
make -C
./YOUR_BUILD_DIRECTORY
erase_flashmake -C
./YOUR_BUILD_DIRECTORY
flash使用 Ninja
ninja -C
./YOUR_BUILD_DIRECTORY
erase_flashninja -C
./YOUR_BUILD_DIRECTORY
flash
監控雲端的 MQTT 訊息
您可以在 AWS IoT 主控台中使用 MQTT 用戶端來監控裝置傳送至 AWS 雲端的訊息。
使用 MQTT 用戶端訂閱 AWS IoT MQTT 主題
-
導覽至 AWS IoT 主控台
。 -
在導覽窗格中,選擇 Test (測試) 以開啟 MQTT 用戶端。
-
在訂閱主題中輸入
,然後選擇訂閱主題。your-thing-name
/example/topic
執行低功耗藍牙示範
FreeRTOS 支援低功耗藍牙連線。
若要跨低功耗藍牙執行 FreeRTOS 示範專案,您必須在 iOS 或 Android 行動裝置上執行 FreeRTOS 低功耗藍牙行動開發套件示範應用程式。
設定 FreeRTOS 低功耗藍牙行動開發套件示範應用程式
-
遵循適用於 FreeRTOS 藍牙裝置的 Mobile SDKs 中的指示,在主機電腦上下載並安裝適用於行動平台的 SDK。
-
遵循 FreeRTOS 低功耗藍牙行動開發套件示範應用程式中的指示,在您的行動裝置上設定示範行動應用程式。
如需有關如何在您的主機板上執行透過低功耗藍牙的 MQTT 示範,請參閱透過低功耗藍牙的 MQTT 示範應用程式。
如需有關如何在您的主機板上執行 Wi-Fi 佈建示範的指示,請參閱 Wi-Fi 佈建示範應用程式。
在 ESP32 的 CMake 專案中使用 FreeRTOS
如果您想要在自己的 CMake 專案中使用 FreeRTOS,您可以將它設定為子目錄,並與應用程式一起建置。首先,從 GitHub
git submodule add -b release https://github.com/aws/amazon-freertos.git
freertos
如果發行更新版本,您可以使用這些命令更新本機複本。
# Pull the latest changes from the remote tracking branch. git submodule update --remote --
freertos
# Commit the submodule change because it is pointing to a different revision now. git add
freertos
git commit -m "Update FreeRTOS to a new release"
如果您的專案具有下列目錄結構:
- freertos (the copy that you obtained from GitHub or the AWS IoT console) - src - main.c (your application code) - CMakeLists.txt
然後,以下是最上層CMakeLists.txt
檔案的範例,可用於搭配 FreeRTOS 建置您的應用程式。
若要建置專案,請執行以下 CMake 命令。確保 ESP32 編譯器位於 PATH 環境變數中。
cmake -S . -B
build-directory
-DCMAKE_TOOLCHAIN_FILE=freertos/tools/cmake/toolchains/xtensa-esp32.cmake -GNinja
cmake --build build
若要將應用程式刷新到您的主機板,請執行下列命令。
cmake --build
build-directory
--target flash
使用 FreeRTOS 中的元件
執行 CMake 之後,您可以在摘要輸出中找到所有可用的元件。它看起來應該類似下列範例。
====================Configuration for FreeRTOS==================== Version: 201910.00 Git version: 201910.00-388-gcb3612cb7 Target microcontroller: vendor: Espressif board: ESP32-DevKitC description: Development board produced by Espressif that comes in two variants either with ESP-WROOM-32 or ESP32-WROVER module family: ESP32 data ram size: 520KB program memory size: 4MB Host platform: OS: Linux-4.15.0-66-generic Toolchain: xtensa-esp32 Toolchain path: /opt/xtensa-esp32-elf CMake generator: Ninja FreeRTOS modules: Modules to build: ble, ble_hal, ble_wifi_provisioning, common, crypto, defender, dev_mode_key_provisioning, freertos_plus_tcp, greengrass, https, kernel, mqtt, ota, pkcs11, pkcs11_implementation, platform, secure_sockets, serializer, shadow, tls, wifi Enabled by user: ble, ble_hal, ble_wifi_provisioning, defender, greengrass, https, mqtt, ota, pkcs11, pkcs11_implementation, platform, secure_sockets, shadow, wifi Enabled by dependency: common, crypto, demo_base, dev_mode_key_provisioning, freertos, freertos_plus_tcp, kernel, pkcs11_mbedtls, secure_sockets_freertos_plus_tcp, serializer, tls, utils 3rdparty dependencies: http_parser, jsmn, mbedtls, pkcs11, tinycbor Available demos: demo_ble, demo_ble_numeric_comparison, demo_defender, demo_greengrass_connectivity, demo_https, demo_mqtt, demo_ota, demo_shadow, demo_tcp, demo_wifi_provisioning Available tests: =========================================================================
您可以從Modules to build
清單中參考任何元件。若要將它們連結到您的應用程式,請將AFR::
命名空間放在名稱前面,例如 AFR::mqtt
、 AFR::ota
等。
將自訂元件新增至 ESP-IDF
您可以將更多元件新增至 ESP-IDF 建置環境。例如,假設您想要新增名為 的元件example_component
,而您的專案看起來像這樣
- freertos - components - example_component - include - example_component.h - src - example_component.c - CMakeLists.txt - src - main.c - CMakeLists.txt
以下是 元件的 CMakeLists.txt
檔案範例。
您還可以使用標準 CMake 函數 target_link_libraries
指定相依性。請注意,元件的目標名稱存放在 ESP-IDF 所定義的變數 COMPONENT_TARGET
中。
對於 ESP 元件,這可透過設定兩個變數 COMPONENT_REQUIRES
和 來完成COMPONENT_PRIV_REQUIRES
。請參閱 ESP-IDF 程式設計指南 v4.2 中的建置系統 (CMake)
然後,在頂層 CMakeLists.txt
檔案中,告訴 ESP-IDF 在哪裡可以找到這些元件。在 之前的任何位置新增以下行add_subdirectory(freertos)
。
根據預設,此元件現在會自動連結至您的應用程式碼。你應該能夠包含它的標頭檔案,並呼叫其定義的函數。
覆寫 FreeRTOS 的組態
目前沒有明確定義的方法來重新定義 FreeRTOS 來源樹狀目錄以外的組態。依預設,CMake 將尋找
和 freertos
/vendors/espressif/boards/esp32/aws_demos/config_files/
目錄。不過,您可以使用因應措施,告訴編譯器首先搜尋其他目錄。例如,您可以為 FreeRTOS 組態新增另一個資料夾。freertos
/demos/include/
- freertos - freertos-configs - aws_clientcredential.h - aws_clientcredential_keys.h - iot_mqtt_agent_config.h - iot_config.h - components - src - CMakeLists.txt
freertos-configs
下的檔案是複製自
和 freertos
/vendors/espressif/boards/esp32/aws_demos/config_files/
目錄。然後,在您的頂層freertos
/demos/include/CMakeLists.txt
檔案中,在 之前新增此行,add_subdirectory(freertos)
讓編譯器先搜尋此目錄。
include_directories(BEFORE freertos-configs)
為 ESP-IDF 提供您自己的 sdkconfig
如果你想要提供自己的 sdkconfig.default
,則可以從命令行設定 CMake 變數 IDF_SDKCONFIG_DEFAULTS
:
cmake -S . -B
build-directory
-DIDF_SDKCONFIG_DEFAULTS=path_to_your_sdkconfig_defaults
-DCMAKE_TOOLCHAIN_FILE=freertos/tools/cmake/toolchains/xtensa-esp32.cmake -GNinja
如果您未為自己的sdkconfig.default
檔案指定位置,FreeRTOS 將使用位於 的預設檔案
。freertos
/vendors/espressif/boards/esp32/aws_demos/sdkconfig.defaults
Summary
如果你有一個專案具有名為 example_component
的元件,而且你想要覆寫一些組態,則以下是頂層 CMakeLists.txt
檔案的完整範例。
故障診斷
-
如果您正在執行 macOS 且作業系統無法辨識 ESP-WROVER-KIT,請確定您未安裝 D2XX 驅動程式。若要解除安裝這些驅動程式,請遵循 FTDI Drivers Installation Guide for macOS X
中的說明。 -
ESP-IDF 提供的監控公用程式 (並使用 make monitor 叫用) 可協助您解碼地址。因此,它可協助您在應用程式停止運作時取得一些有意義的回溯。如需詳細資訊,請參閱 Espressif 網站上的自動地址解碼
。 -
您也可以啟用 GDBstub 與 gdb 通訊,而不需要任何特殊的 JTAG 硬體。如需詳細資訊,請參閱 Espressif 網站上的使用 GDBStub 啟動 GDB
。 -
如需在需要 JTAG 硬體型偵錯時設定 OpenOCD 型環境的相關資訊,請參閱 Espressif 網站上的 JTAG Debugging
。 -
如果
pyserial
無法在 macOSpip
上使用 安裝 ,請從 pyserial 網站下載。 -
如果電路板持續重設,請嘗試在終端機上輸入下列命令來清除快閃記憶體。
make erase_flash
-
如果您在執行
idf_monitor.py
時看到錯誤,請使用 Python 2.7。 -
從 ESP-IDF 取得的必要程式庫包含在 FreeRTOS 中,因此不需要從外部下載。如果已設定
IDF_PATH
環境變數,建議您在建置 FreeRTOS 之前將其清除。 -
在 Windows 上,系統可能需要 3-4 分鐘來建置專案。您可以在 make 命令上使用
-j4
參數,以縮短建置時間:make flash monitor -j4
-
如果您的裝置無法連線至 AWS IoT,請開啟
aws_clientcredential.h
檔案,並確認檔案中已正確定義組態變數。clientcredentialMQTT_BROKER_ENDPOINT[]
看起來應該像
。1234567890123
-ats.iot.us-east-1
.amazonaws.com -
如果您遵循 在 ESP32 的 CMake 專案中使用 FreeRTOS 中的步驟,並且從連結器中看到未定義的參照錯誤,這通常是因為缺少相依程式庫或示範導致。若要新增這些項目,請使用標準 CMake 函數
target_link_libraries
更新CMakeLists.txt
檔案 (在根目錄下)。
-
ESP-IDF v4.2 支援使用 xtensa-esp32-elf-gcc 8.2.0. 工具鏈。如果您使用的是舊版 Xtensa 工具鏈,請下載必要的版本。
-
如果您看到有關 ESP-IDF v4.2 未滿足的 Python 相依性的錯誤日誌,如下所示。
The following Python requirements are not satisfied: click>=5.0 pyserial>=3.0 future>=0.15.2 pyparsing>=2.0.3,<2.4.0 pyelftools>=0.22 gdbgui==0.13.2.0 pygdbmi<=0.9.0.2 reedsolo>=1.5.3,<=1.5.4 bitstring>=3.1.6 ecdsa>=0.16.0 Please follow the instructions found in the "Set up the tools" section of ESP-IDF Getting Started Guide
使用下列 Python 命令在您的平台上安裝 python 相依性:
root
/vendors/espressif/esp-idf/requirements.txt
如需更多故障診斷資訊,請參閱 故障診斷入門。
除錯
Espressif ESP32-DevKitC 和 ESP-WROVER-KIT (ESP-IDF v3.3) 上的偵錯程式碼
本節說明如何使用 ESP-IDF v3.3 偵錯 Espressif 硬體。若要使用 ESP-IDF 4.2 版進行偵錯,請參閱 Espressif ESP32-DevKitC 和 ESP-WROVER-KIT (ESP-IDF v4.2) 上的偵錯程式碼。
您需要 JTAG 對 USB 纜線。我們會使用 USB 對 MPSSE 纜線 (例如 FTDI C232HM-DDHSL-0
ESP-DevKitC JTAG 設定
對於 FTDI C232HM-DDHSL-0 纜線,這些是 ESP32 DevkitC 的連線。
C232HM-DDHSL-0 電線顏色 | ESP32 GPIO Pin | JTAG 訊號名稱 |
---|---|---|
棕色 (pin 5) |
IO14 |
TMS |
黃色 (pin 3) |
IO12 |
TDI |
黑色 (pin 10) |
GND |
GND |
橘色 (pin 2) |
IO13 |
TCK |
綠色 (pin 4) |
IO15 |
TDO |
ESP-WROVER-KIT JTAG 設定
對於 FTDI C232HM-DDHSL-0 纜線,這些是 ESP32-WROVER-KIT 的連線。
C232HM-DDHSL-0 電線顏色 | ESP32 GPIO Pin | JTAG 訊號名稱 |
---|---|---|
棕色 (pin 5) |
IO14 |
TMS |
黃色 (pin 3) |
IO12 |
TDI |
橘色 (pin 2) |
IO13 |
TCK |
綠色 (pin 4) |
IO15 |
TDO |
這些資料表是從 FTDI C232HM-DDHSL-0 datasheet
若要在 ESP-WROVER-KIT 上啟用 JTAG,請在 TMS、TDO、TDI、TCK 和 S_TDI 接腳上放置跳線,如下所示。

在 Windows 上偵錯 (ESP-IDF v3.3)
在 Windows 中進行除錯設定
-
將 FTDI C232HM-DDHSL-0 的 USB 一端接到您的電腦,而另一端則按Espressif ESP32-DevKitC 和 ESP-WROVER-KIT (ESP-IDF v3.3) 上的偵錯程式碼中所述進行。FTDI C232HM-DDHSL-0 裝置應該會出現在 Universal Serial Bus Controllers (通用序列匯流排控制器) 下方的 Device Manager (裝置管理員) 中。
-
在通用序列匯流排裝置清單下,請以滑鼠右鍵按一下 C232HM-DDHSL-0 裝置,然後選擇 Properties (屬性)。
注意
裝置可能會列為 USB Serial Port (USB 序列連接埠)。
在屬性視窗中,選擇 Details (詳細資訊) 標籤,以查看裝置的屬性。如果未列出裝置,請安裝 FTDI C232HM-DDHSL-0 的 Windows 驅動程式
。 -
在 Details (詳細資訊) 索引標籤中,選擇 Property (屬性),然後選擇 Hardware IDs (硬體 ID)。您應該會在 值 欄位中看到類似的情況。
FTDIBUS\COMPORT&VID_0403&PID_6014
在此範例中,廠商 ID 為 0403,產品 ID 為 6014。
確認這些 ID 符合
projects/espressif/esp32/make/aws_demos/esp32_devkitj_v1.cfg
中的 ID。IDs 是在以 開頭的行中指定,ftdi_vid_pid
後面接著廠商 ID 和產品 ID。ftdi_vid_pid 0x0403 0x6014
-
將檔案解壓縮至
C:\
,並新增C:\openocd-esp32\bin
到您的系統路徑。 -
OpenOCD 需要 libusb,但預設不會在 Windows 中安裝。
安裝 libusb
-
請下載 zadig.exe
。 -
執行
zadig.exe
。從 Options (選項) 功能表中,選擇 List All Devices (列出所有裝置)。 -
從下拉式選單中,選擇 C232HM-DDHSL-0。
-
在目標驅動程式欄位中,選擇綠色箭頭右側的 WinUSB (WinUSB)。
-
從目標驅動程式欄位下的下拉式清單中,選擇箭頭,然後選擇安裝驅動程式。選擇 Replace Driver (取代驅動程式)。
-
-
開啟命令提示字元,導覽至
projects/espressif/esp32/make/aws_demos
並執行下列命令。對於 ESP32-WROOM-32 和 ESP32-WROVER
openocd.exe -f esp32_devkitj_v1.cfg -f esp-wroom-32.cfg
對於 ESP32-SOLO-1
openocd.exe -f esp32_devkitj_v1.cfg -f esp-solo-1.cfg
將此命令提示保持開啟。
-
開啟新的命令提示,然後導覽至您的
msys32
目錄,並執行mingw32.exe
。 -
在 mingw32 終端機中,導覽至
projects/espressif/esp32/make/aws_demos
並執行make flash monitor
-
開啟另一個 mingw32 終端機,導覽至
projects/espressif/esp32/make/aws_demos
,並等待您主機板上的示範開始執行。示範開始執行時,執行xtensa-esp32-elf-gdb -x gdbinit build/aws_demos.elf
。程式應該會在main
函數中停止。
注意
ESP32 支援最多兩個中斷點。
在 macOS 上偵錯 (ESP-IDF v3.3)
-
下載 OpenOCD
。 -
解壓縮已下載的 .tar 檔案,並將路徑設在
.bash_profile
到
中。OCD_INSTALL_DIR
/openocd-esp32/bin -
使用下列命令在 macOS
libusb
上安裝 。brew install libusb
-
使用下列命令卸載序列連接埠驅動程式。
sudo kextunload -b com.FTDI.driver.FTDIUSBSerialDriver
-
如果您執行的 macOS 版本高於 10.9,請使用下列命令來卸載 Apple FTDI 驅動程式。
sudo kextunload -b com.apple.driver.AppleUSBFTDI
-
使用下列命令來取得 FTDI 纜線的產品 ID 和廠商 ID。它列出連接的 USB 裝置。
system_profiler SPUSBDataType
的輸出
system_profiler
應如下所示。DEVICE
: Product ID:product-ID
Vendor ID:vendor-ID
(Future Technology Devices International Limited) -
開啟
projects/espressif/esp32/make/aws_demos/esp32_devkitj_v1.cfg
檔案。裝置的廠商 ID 和產品 ID 是指定在開頭為ftdi_vid_pid
的一行中。變更 ID 以符合來自前一個步驟中system_profiler
輸出的 ID。 -
開啟終端機視窗,導覽至
projects/espressif/esp32/make/aws_demos
,然後使用下列命令來執行 OpenOCD:對於 ESP32-WROOM-32 and ESP32-WROVER:
openocd -f esp32_devkitj_v1.cfg -f esp-wroom-32.cfg
對於 ESP32-SOLO-1:
openocd -f esp32_devkitj_v1.cfg -f esp-solo-1.cfg
-
開啟新的終端機,並使用下列命令載入 FTDI 序列連接埠驅動程式。
sudo kextload -b com.FTDI.driver.FTDIUSBSerialDriver
-
導覽至
projects/espressif/esp32/make/aws_demos
,然後執行下列命令。make flash monitor
-
開啟另一個新的終端機,導覽至
projects/espressif/esp32/make/aws_demos
,然後執行下列命令。xtensa-esp32-elf-gdb -x gdbinit build/aws_demos.elf
程式應該會在
main()
停止。
Linux 上的偵錯 (ESP-IDF v3.3)
-
下載 OpenOCD
。解壓縮 tarball 並遵循讀我檔中的安裝指示。 -
使用下列命令在 Linux 上安裝 libusb。
sudo apt-get install libusb-1.0
-
開啟終端機,並輸入
ls -l /dev/ttyUSB*
以列出所有連接到您電腦的 USB 裝置。這可協助您檢查作業系統是否辨識電路板的 USB 連接埠。您應該會看到類似以下的輸出。$ls -l /dev/ttyUSB* crw-rw---- 1 root dialout 188, 0 Jul 10 19:04 /dev/ttyUSB0 crw-rw---- 1 root dialout 188, 1 Jul 10 19:04 /dev/ttyUSB1
-
登出再登入,並重新啟動電路板的電源,以讓變更生效。在終端機提示中,列出 USB 裝置。確定群組擁有者已從 變更為
dialout
plugdev
。$ls -l /dev/ttyUSB* crw-rw---- 1 root plugdev 188, 0 Jul 10 19:04 /dev/ttyUSB0 crw-rw---- 1 root plugdev 188, 1 Jul 10 19:04 /dev/ttyUSB1
數字小的
/dev/ttyUSBn
界面用於 JTAG 通訊。另一個界面會路由至 ESP32 的序列連接埠 (UART),並用於將程式碼上傳至 ESP32 的快閃記憶體。 -
在終端機視窗中,導覽至
projects/espressif/esp32/make/aws_demos
,然後使用下列命令來執行 OpenOCD:對於 ESP32-WROOM-32 and ESP32-WROVER:
openocd -f esp32_devkitj_v1.cfg -f esp-wroom-32.cfg
對於 ESP32-SOLO-1:
openocd -f esp32_devkitj_v1.cfg -f esp-solo-1.cfg
-
開啟另一個終端機,導覽至
projects/espressif/esp32/make/aws_demos
,然後執行下列命令。make flash monitor
-
開啟另一個終端機,導覽至
projects/espressif/esp32/make/aws_demos
,並執行下列命令:xtensa-esp32-elf-gdb -x gdbinit build/aws_demos.elf
程式應該會在
main()
中停止。
Espressif ESP32-DevKitC 和 ESP-WROVER-KIT (ESP-IDF v4.2) 上的偵錯程式碼
本節說明如何使用 ESP-IDF v4.2 偵錯 Espressif 硬體。若要使用 ESP-IDF v3.3 進行偵錯,請參閱 Espressif ESP32-DevKitC 和 ESP-WROVER-KIT (ESP-IDF v3.3) 上的偵錯程式碼。
您需要 JTAG 對 USB 纜線。我們會使用 USB 對 MPSSE 纜線 (例如 FTDI C232HM-DDHSL-0
ESP-DevKitC JTAG 設定
對於 FTDI C232HM-DDHSL-0 纜線,這些是 ESP32 DevkitC 的連線。
C232HM-DDHSL-0 電線顏色 | ESP32 GPIO Pin | JTAG 訊號名稱 |
---|---|---|
棕色 (pin 5) |
IO14 |
TMS |
黃色 (pin 3) |
IO12 |
TDI |
黑色 (pin 10) |
GND |
GND |
橘色 (pin 2) |
IO13 |
TCK |
綠色 (pin 4) |
IO15 |
TDO |
ESP-WROVER-KIT JTAG 設定
對於 FTDI C232HM-DDHSL-0 纜線,這些是 ESP32-WROVER-KIT 的連線。
C232HM-DDHSL-0 電線顏色 | ESP32 GPIO Pin | JTAG 訊號名稱 |
---|---|---|
棕色 (pin 5) |
IO14 |
TMS |
黃色 (pin 3) |
IO12 |
TDI |
橘色 (pin 2) |
IO13 |
TCK |
綠色 (pin 4) |
IO15 |
TDO |
這些資料表是從 FTDI C232HM-DDHSL-0 datasheet
若要在 ESP-WROVER-KIT 上啟用 JTAG,請在 TMS、TDO、TDI、TCK 和 S_TDI 接腳上放置跳線,如下所示。

在 Windows 上偵錯 (ESP-IDF v4.2)
在 Windows 中進行除錯設定
-
將 FTDI C232HM-DDHSL-0 的 USB 一端接到您的電腦,而另一端則按Espressif ESP32-DevKitC 和 ESP-WROVER-KIT (ESP-IDF v4.2) 上的偵錯程式碼中所述進行。FTDI C232HM-DDHSL-0 裝置應該會出現在 Universal Serial Bus Controllers (通用序列匯流排控制器) 下方的 Device Manager (裝置管理員) 中。
-
在通用序列匯流排裝置清單下,請以滑鼠右鍵按一下 C232HM-DDHSL-0 裝置,然後選擇 Properties (屬性)。
注意
裝置可能會列為 USB Serial Port (USB 序列連接埠)。
在屬性視窗中,選擇 Details (詳細資訊) 標籤,以查看裝置的屬性。如果未列出裝置,請安裝 FTDI C232HM-DDHSL-0 的 Windows 驅動程式
。 -
在 Details (詳細資訊) 索引標籤中,選擇 Property (屬性),然後選擇 Hardware IDs (硬體 ID)。您應該會在 值 欄位中看到類似的情況。
FTDIBUS\COMPORT&VID_0403&PID_6014
在此範例中,廠商 ID 為 0403,產品 ID 為 6014。
確認這些 ID 符合
projects/espressif/esp32/make/aws_demos/esp32_devkitj_v1.cfg
中的 ID。IDs 是在以 開頭的行中指定,ftdi_vid_pid
後面接著廠商 ID 和產品 ID。ftdi_vid_pid 0x0403 0x6014
-
將檔案解壓縮至
C:\
,並新增C:\openocd-esp32\bin
到您的系統路徑。 -
OpenOCD 需要 libusb,但預設不會在 Windows 中安裝。
安裝 libusb
-
請下載 zadig.exe
。 -
執行
zadig.exe
。從 Options (選項) 功能表中,選擇 List All Devices (列出所有裝置)。 -
從下拉式選單中,選擇 C232HM-DDHSL-0。
-
在目標驅動程式欄位中,選擇綠色箭頭右側的 WinUSB (WinUSB)。
-
從目標驅動程式欄位下的下拉式清單中,選擇箭頭,然後選擇安裝驅動程式。選擇 Replace Driver (取代驅動程式)。
-
-
開啟命令提示字元,導覽至 FreeRTOS 下載目錄的根目錄,然後執行下列命令。
idf.py openocd
將此命令提示保持開啟。
-
開啟新的命令提示字元,導覽至 FreeRTOS 下載目錄的根目錄,然後執行
idf.py flash monitor
-
開啟另一個命令提示字元,導覽至 FreeRTOS 下載目錄的根目錄,並等待示範開始在您的電路板上執行。執行時,請執行
idf.py gdb
程式應該會在
main
函數中停止。
注意
ESP32 支援最多兩個中斷點。
在 macOS 上偵錯 (ESP-IDF v4.2)
-
下載 OpenOCD
。 -
解壓縮已下載的 .tar 檔案,並將路徑設在
.bash_profile
到
中。OCD_INSTALL_DIR
/openocd-esp32/bin -
使用下列命令在 macOS
libusb
上安裝 。brew install libusb
-
使用下列命令卸載序列連接埠驅動程式。
sudo kextunload -b com.FTDI.driver.FTDIUSBSerialDriver
-
如果您執行的 macOS 版本高於 10.9,請使用下列命令來卸載 Apple FTDI 驅動程式。
sudo kextunload -b com.apple.driver.AppleUSBFTDI
-
使用下列命令來取得 FTDI 纜線的產品 ID 和廠商 ID。它列出連接的 USB 裝置。
system_profiler SPUSBDataType
的輸出
system_profiler
應如下所示。DEVICE
: Product ID:product-ID
Vendor ID:vendor-ID
(Future Technology Devices International Limited) -
開啟
projects/espressif/esp32/make/aws_demos/esp32_devkitj_v1.cfg
檔案。裝置的廠商 ID 和產品 ID 是指定在開頭為ftdi_vid_pid
的一行中。變更 ID 以符合來自前一個步驟中system_profiler
輸出的 ID。 -
開啟終端機視窗,導覽至 FreeRTOS 下載目錄的根目錄,然後使用下列命令來執行 OpenOCD。
idf.py openocd
保持此終端機視窗開啟。
-
開啟新的終端機,並使用下列命令載入 FTDI 序列連接埠驅動程式。
sudo kextload -b com.FTDI.driver.FTDIUSBSerialDriver
-
導覽至 FreeRTOS 下載目錄的根目錄,然後執行
idf.py flash monitor
-
開啟另一個新的終端機,導覽至 FreeRTOS 下載目錄的根目錄,然後執行
idf.py gdb
程式應該會在
main
停止。
Linux 上的偵錯 (ESP-IDF v4.2)
-
下載 OpenOCD
。解壓縮 tarball 並遵循讀我檔中的安裝指示。 -
使用下列命令在 Linux 上安裝 libusb。
sudo apt-get install libusb-1.0
-
開啟終端機,並輸入
ls -l /dev/ttyUSB*
以列出所有連接到您電腦的 USB 裝置。這可協助您檢查作業系統是否辨識電路板的 USB 連接埠。您應該會看到類似以下的輸出。$ls -l /dev/ttyUSB* crw-rw---- 1 root dialout 188, 0 Jul 10 19:04 /dev/ttyUSB0 crw-rw---- 1 root dialout 188, 1 Jul 10 19:04 /dev/ttyUSB1
-
登出再登入,並重新啟動電路板的電源,以讓變更生效。在終端機提示中,列出 USB 裝置。確定群組擁有者已從 變更為
dialout
plugdev
。$ls -l /dev/ttyUSB* crw-rw---- 1 root plugdev 188, 0 Jul 10 19:04 /dev/ttyUSB0 crw-rw---- 1 root plugdev 188, 1 Jul 10 19:04 /dev/ttyUSB1
數字小的
/dev/ttyUSBn
界面用於 JTAG 通訊。另一個界面會路由至 ESP32 的序列連接埠 (UART),並用於將程式碼上傳至 ESP32 的快閃記憶體。 -
在終端機視窗中,導覽至 FreeRTOS 下載目錄的根目錄,然後使用下列命令來執行 OpenOCD。
idf.py openocd
-
開啟另一個終端機,導覽至 FreeRTOS 下載目錄的根目錄,然後執行下列命令。
idf.py flash monitor
-
開啟另一個終端機,導覽 FreeRTOS 下載目錄的根目錄,然後執行下列命令:
idf.py gdb
程式應該會在
main()
中停止。