本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
开始使用 Espressif ESP32-C 和 DevKit ESP-WROVER-KIT
重要
这是《FreeRTOS 用户指南》的存档版本,可用于 FreeRTOS 版本 202012.00。有关本文档的最新版本,请参阅《FreeRTOS 用户指南》。
按照本教程开始使用配备-WROOM- ESP32 32、 ESP32-SOLO-1 或 ESP-WROVER 模块的 Espressif ESP32-DevKit C 以及。 ESP-WROVER-KIT-VB要在合作伙伴设备目录中向我们的 AWS 合作伙伴购买一台,请使用以下链接:
这些版本的开发主板在 FreeRTOS 上均受支持。
有关这些主板最新版本的更多信息,请参阅 Espressif 网站上的 ESP32-DevKit C ESP-WROVER-KIT V4
注意
目前,-WROVER-KIT 和 DevKit ESP C 的 FreeRTOS 端口不支持 ESP32对称多处理 (SMP) 功能。
概览
该教程将指导您完成以下步骤:
-
将主板连接到主机
-
在主机上安装软件来开发和调试微控制器主板的嵌入式应用程序
-
将 FreeRTOS 演示应用程序交叉编译为二进制映像
-
将应用程序二进制映像加载到您的主板上,然后运行该应用程序
-
跨串行连接与主板上运行的应用程序进行交互,以便进行监视和调试
先决条件
在开始在乐鑫看板上使用 FreeRTOS 之前,您必须设置账户和权限。 AWS
注册获取 AWS 账户
如果您没有 AWS 账户,请完成以下步骤来创建一个。
报名参加 AWS 账户
按照屏幕上的说明操作。
注册过程的一部分涉及接听电话或短信,并在电话键盘上输入验证码。
当您注册时 AWS 账户,就会创建AWS 账户根用户一个。根用户有权访问该账户中的所有 AWS 服务 和资源。作为最佳安全实践,请为用户分配管理访问权限,并且只使用根用户来执行需要根用户访问权限的任务。
AWS 注册过程完成后会向您发送一封确认电子邮件。您可以随时前往 https://aws.amazon.com/
创建具有管理访问权限的用户
注册后,请保护您的安全 AWS 账户 AWS 账户根用户 AWS IAM Identity Center,启用并创建管理用户,这样您就不会使用 root 用户执行日常任务。
保护你的 AWS 账户根用户
-
选择 Root 用户并输入您的 AWS 账户 电子邮件地址,以账户所有者的身份登录。AWS Management Console
在下一页上,输入您的密码。 要获取使用根用户登录方面的帮助,请参阅《AWS 登录 用户指南》中的 Signing in as the root user。
-
为您的根用户启用多重身份验证(MFA)。
有关说明,请参阅 I A M 用户指南中的为 AWS 账户 根用户(控制台)启用虚拟 MFA 设备。
创建具有管理访问权限的用户
-
启用 IAM Identity Center。
有关说明,请参阅《AWS IAM Identity Center 用户指南》中的 Enabling AWS IAM Identity Center。
-
在 IAM Identity Center 中,为用户授予管理访问权限。
有关使用 IAM Identity Center 目录 作为身份源的教程,请参阅《用户指南》 IAM Identity Center 目录中的使用默认设置配置AWS IAM Identity Center 用户访问权限。
以具有管理访问权限的用户身份登录
-
要使用您的 IAM Identity Center 用户身份登录,请使用您在创建 IAM Identity Center 用户时发送到您的电子邮件地址的登录网址。
有关使用 IAM Identity Center 用户登录的帮助,请参阅AWS 登录 用户指南中的登录 AWS 访问门户。
将访问权限分配给其他用户
-
在 IAM Identity Center 中,创建一个权限集,该权限集遵循应用最低权限的最佳做法。
有关说明,请参阅《AWS IAM Identity Center 用户指南》中的 Create a permission set。
-
将用户分配到一个组,然后为该组分配单点登录访问权限。
有关说明,请参阅《AWS IAM Identity Center 用户指南》中的 Add groups。
要提供访问权限,请为您的用户、组或角色添加权限:
-
中的用户和群组 AWS IAM Identity Center:
创建权限集合。按照《AWS IAM Identity Center 用户指南》中创建权限集的说明进行操作。
-
通过身份提供商在 IAM 中托管的用户:
创建适用于身份联合验证的角色。按照《IAM 用户指南》中针对第三方身份提供商创建角色(联合身份验证)的说明进行操作。
-
IAM 用户:
-
创建您的用户可以担任的角色。按照《IAM 用户指南》中为 IAM 用户创建角色的说明进行操作。
-
(不推荐使用)将策略直接附加到用户或将用户添加到用户组。按照《IAM 用户指南》中向用户添加权限(控制台)中的说明进行操作。
-
注意
FreeRTOS 202012.00 版本支持 ESP-IDF v3.3。如果您使用的是更高版本的 FreeRTOS,请按照 .2 中的特定 IDFv4说明进行操作。ESP-IDF v4.2 入门
ESP-IDF v3.3 入门
本节介绍如何在 Espressif 硬件上使用 ESP-IDF v3.3。要使用 ESP-IDF v4.2,请参阅ESP-IDF v4.2 入门。
设置 Espressif 硬件
有关设置 ESP32-DevKit C 开发板硬件的更多信息,请参阅 ESP32-DevKit C V4 入门指南
有关设置 ESP-WROVER-KIT开发板硬件的信息。请参阅 ESP-WROVER-KITV4.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 从 CMake.org
有关 CMake 与 FreeRTOS 配合使用的更多详细信息,请参阅。 CMake 与 FreeRTOS 一起使用
建立串行连接
要在主机和 ESP32-DevKit C 之间建立串行连接,必须安装 CP21 0x USB 到 UART Bridge VCP 驱动程序。您可以从 Silicon Labs
要在主机和 ESP32-WROVER-KIT 之间建立串行连接,必须安装一些 FTDI 虚拟 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,请使用在 easy_install awscli mingw32 环境 AWS CLI 中安装。
如果您运行的是 macOS 或 Linux,请参阅安装 AWS CLI。
-
运行aws configure并 AWS CLI 使用您的 AWS 访问密钥 ID、私有访问密钥和 AWS 区域进行配置。有关更多信息,请参阅配置 AWS CLI。
-
使用以下命令安装适用于 Python 的 AWS 开发工具包 (boto3):
-
在 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_clientcredential.h
文件中填充您的 AWS IoT 终端节点、Wi-Fi SSID 和凭据 -
设置您的证书和私有密钥格式,然后将其写入
aws_clientcredential_keys.h
标头文件注意
出于演示目的,对该证书进行了硬编码。生产级应用程序应将这些文件存储在安全位置。
有关 SetupAWS.py
的更多信息,请参阅
目录中的 freertos
/tools/aws_config_quick_startREADME.md
文件。
构建、刷写并运行 FreeRTOS 演示项目
您可以使用生成构建文件,使用 CMake Make 来生成应用程序二进制文件,使用乐鑫的 IDF 实用程序来刷新开发板。
在 Linux 或 macOS 上构建 FreeRTOS (ESP-IDF v3.3)
如果您使用的是 Windows,请参阅在 Windows 上构建 FreeRTOS (ESP-IDF v3.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 组件的依赖文件 CMake
CMakeLists.txt
中添加以下几行。# 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 v3.3)
在 Windows 上,必须为指定生成生成器 CMake。否则, CMake 默认为 Visual Studio。Espressif 正式推荐使用 Ninja 构建系统,因为它适用于 Windows、Linux 和 MacOS。你必须在 Windows 原生环境中运行 CMake 命令,比如 cmd 或 PowerShell。不支持在虚拟 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 组件的依赖文件 CMake
CMakeLists.txt
中添加以下几行。# 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 v4.2,请参阅ESP-IDF v4.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 v4.2 入门
本节介绍如何在 Espressif 硬件上使用 ESP-IDF v4.32。要使用 ESP-IDF v3.3,请参阅ESP-IDF v3.3 入门。
注意
本教程中的 Linux 命令要求您使用 Bash Shell。
设置 Espressif 硬件
有关设置 ESP32-DevKit C 开发板硬件的信息,请参阅 ESP32-DevKit C V4 入门指南
有关设置 ESP-WROVER-KIT开发板硬件的信息,请参阅 ESP-WROVER-KITV4.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-DevKit C 之间建立串行连接,必须安装 CP21 0x USB 到 UART Bridge VCP 驱动程序。您可以从 Silicon Labs
要在主机与 ESP32-WROVER-KIT 之间建立串行连接,必须安装 FTDI 虚拟 COM 端口驱动程序。您可以从 FTDI
有关更多信息,请参阅与建立串行连接 ESP32
下载并配置 FreeRTOS
设置好环境后,您可以从中下载 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,请使用在 easy_install awscli mingw32 环境 AWS CLI 中安装。
如果您运行的是 macOS 或 Linux,请参阅安装 AWS CLI。
-
运行
aws configure
并 AWS CLI 使用您的 AWS 访问密钥 ID、私有访问密钥和默认 AWS 区域进行配置。有关更多信息,请参阅配置 AWS CLI。
-
使用以下命令安装适用于 Python 的 AWS 开发工具包 (boto3):
-
在 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_clientcredential.h
文件中填充您的 AWS IoT 终端节点、Wi-Fi SSID 和凭据 -
设置您的证书和私有密钥格式,然后将其写入
aws_clientcredential_keys.h
标头文件注意
出于演示目的,对该证书进行了硬编码。生产级应用程序应将这些文件存储在安全位置。
有关 SetupAWS.py
的更多信息,请参阅
目录中的 freertos
/tools/aws_config_quick_startREADME.md
文件。
使用 idf.py 脚本构建、刷写和运行 FreeRTOS 演示项目
您可以使用 Espressif 的 IDF 实用工具生成构建文件,构建应用程序二进制文件和刷写主板。
在 Windows、Linux 和 MacOS 上构建和刷写 FreeRTOS (ESP-IDF v4.2)
使用 idf.py
脚本构建项目并将二进制文件刷写到设备上。
注意
某些设置可能需要您使用在 idf.py
中使用端口选项 "-p
来指定正确的端口,如以下示例所示。port-name
"
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
使用构建和刷新 FreeRTOS CMake
除了 IDF SDK 提供的用于构建和运行代码的idf.py
脚本外,您还可以使用构建项目 CMake。目前,它支持 Unix Makefile 和 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 客户端订阅 M AWS IoT QTT 主题
-
导航至 AWS IoT 控制台
。 -
在导航窗格中,选择测试以打开 MQTT 客户端。
-
在 Subscription topic (订阅主题)中,输入
,然后选择 Subscribe to topic (订阅主题)。your-thing-name
/example/topic
运行低功耗蓝牙演示
FreeRTOS 支持低功耗蓝牙连接。
要跨低功耗蓝牙运行 FreeRTOS 演示项目,您必须在 iOS 或 Android 移动设备上运行 FreeRTOS 低功耗蓝牙移动开发工具包演示应用程序。
设置 FreeRTOS 低功耗蓝牙移动开发工具包演示应用程序
-
按照移动版 SDKs FreeRTOS 蓝牙设备中的说明在主机上下载并安装适用于您的移动平台的 SDK。
-
按照 FreeRTOS 低功耗蓝牙移动开发工具包演示应用程序中的说明,在您的移动设备上设置演示移动应用程序。
有关如何在主板上运行低功耗蓝牙 MQTT 演示的说明,请参阅低功耗蓝牙 MQTT 演示应用程序。
有关如何在主板上运行 Wi-Fi 预置演示的说明,请参阅 Wi-Fi 预置演示应用程序。
在你自己的项目中使用 FreeRTOS CMake ESP32
如果您想在 CMake 自己的项目中使用 FreeRTOS,可以将其设置为子目录,然后将其与您的应用程序一起构建。首先,从那里获取 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
下面是在 FreeRTOS 中可用于构建应用程序的顶级 CMakeLists.txt
文件的示例。
要生成项目,请运行以下 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
摘要
如果您的项目具有一个名为 example_component
的组件,并且您要覆盖某些配置,以下是顶级 CMakeLists.txt
文件的完整示例。
故障排除
-
如果你运行的是 macOS,但操作系统无法识别你的 ESP-WROVER-KIT,请确保你没有安装 D2XX 驱动程序。要卸载它们,请按照适用于 macOS X 的 FTDI 驱动程序安装指南
中的说明操作。 -
ESP-IDF 提供的监控实用程序(使用 make monitor 调用)可帮助您解码地址。因此,在应用程序停止工作时,它可以帮助您获取一些有意义的回溯跟踪信息。有关更多信息,请参阅 Espressif 网站上的自动解码地址
。 -
也可以在不需要任何特殊的 JTAG 硬件的情况下启用 GDBstub 与 gdb 的通信。有关更多信息,请参阅乐鑫 GDBStub网站上的 “使用启动 GDB
”。 -
有关设置基于 OpenOCD 的环境的信息(如果需要基于 JTAG 硬件的调试),请参阅 Espressif 网站上的 JTAG 调试
。 -
如果无法使用
pip
在 macOS 上安装pyserial
,请从 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 -
如果您遵循在你自己的项目中使用 FreeRTOS CMake ESP32中的步骤,并且您看到来自链接器的未定义的引用错误,则通常是由于缺少关联的库或演示所致。要添加它们,请使用标准 CMake 函数更新
CMakeLists.txt
文件(位于根目录下)target_link_libraries
。
-
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-DevKit C 和 ESP-WROVER-KIT (ESP-IDF v3.3) 上调试代码
本节介绍如何使用 ESP-IDF v3.3 调试 Espressif 硬件。要使用 ESP-IDF v4.2 进行调试,请参阅在 Espressif ESP32-DevKit C 和 ESP-WROVER-KIT (ESP-IDF v4.2) 上调试代码。
您需要 JTAG 到 USB 电缆。我们使用 USB 到 MPSSE 电缆(例如,FTDI C232HM-DDHSL-0
ESP-DevKit C JTAG 设置
对于 FTDI C232HM-DDHSL-0 电缆,这些是与 Dev ESP32 Kitc 的连接。
C232HM-DDHSL-0 电线颜色 | ESP32 GPIO 引脚 | JTAG 信号名称 |
---|---|---|
棕色(针脚 5) |
IO14 |
TMS |
黄色(针脚 3) |
IO12 |
TDI |
黑色(针脚 10) |
GND |
GND |
橙色(针脚 2) |
IO13 |
TCK |
绿色(针脚 4) |
IO15 |
TDO |
ESP-WROVER-KIT JTAG 安装程序
对于 FTDI C232HM-DDHSL-0 电缆,这些是与-WROVER ESP32-KIT 的连接。
C232HM-DDHSL-0 电线颜色 | ESP32 GPIO 引脚 | JTAG 信号名称 |
---|---|---|
棕色(针脚 5) |
IO14 |
TMS |
黄色(针脚 3) |
IO12 |
TDI |
橙色(针脚 2) |
IO13 |
TCK |
绿色(针脚 4) |
IO15 |
TDO |
这些表源自 FTDI C232HM-DDHSL-0 数据表
要在上启用 JTAG,请将跳线放在 TMS ESP-WROVER-KIT、TDO、TDI、TCK 和 S_TDI 引脚上,如下所示。

在 Windows 上进行调试 (ESP-IDF v3.3)
在 Windows 上设置调试
-
将 FTDI C232HM-DDHSL-0 的 USB 一端连接到您的计算机,另一端的操作如在 Espressif ESP32-DevKit C 和 ESP-WROVER-KIT (ESP-IDF v3.3) 上调试代码中所述。FTDI C232HM-DDHSL-0 设备应显示在设备管理器下的通用串行总线控制器中。
-
在通用串行总线设备列表下,右键单击 C232HM-DDHSL-0 设备,然后选择 Properties (属性)。
注意
该设备可能被列为 USB Serial Port (USB 串行端口)。
在属性窗口中,选择详细信息选项卡以查看设备的属性。如果未列出设备,请安装适用于 FTDI C232HM-DDHSL-0 的 Windows 驱动程序
。 -
在 “详细信息” 选项卡上,选择 “属性”,然后选择 “硬件” IDs。您将在值字段中看到与以下类似的内容。
FTDIBUS\COMPORT&VID_0403&PID_6014
在此示例中,供应商 ID 为 0403,产品 ID 为 6014。
验证它们是否 IDs 与输入相 IDs 匹配
projects/espressif/esp32/make/aws_demos/esp32_devkitj_v1.cfg
。在以 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。
-
从目标驱动程序字段下方的下拉框中,选择箭头,然后选择 Install Driver (安装驱动程序)。选择 Replace Driver (替换驱动程序)。
-
-
打开命令提示符,转到
projects/espressif/esp32/make/aws_demos
并运行以下命令。适用于 ESP32-WROOM-32 和-WROVER ESP32
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
-
如果您在高于 10.9 的 macOS 版本上运行,请使用以下命令卸载 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
开头的行中指定。更改 IDs 以匹配上一步 IDs 中system_profiler
输出的内容。 -
打开终端窗口,导航到
projects/espressif/esp32/make/aws_demos
,然后使用以下命令运行 OpenOCD:对于 ESP32-WROOM-32 和-WROVER: ESP32
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 和-WROVER: ESP32
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-DevKit C 和 ESP-WROVER-KIT (ESP-IDF v4.2) 上调试代码
本节介绍如何使用 ESP-IDF v4.2 调试 Espressif 硬件。要使用 ESP-IDF v3.3 进行调试,请参阅在 Espressif ESP32-DevKit C 和 ESP-WROVER-KIT (ESP-IDF v3.3) 上调试代码。
您需要 JTAG 到 USB 电缆。我们使用 USB 到 MPSSE 电缆(例如,FTDI C232HM-DDHSL-0
ESP-DevKit C JTAG 设置
对于 FTDI C232HM-DDHSL-0 电缆,这些是与 Dev ESP32 Kitc 的连接。
C232HM-DDHSL-0 电线颜色 | ESP32 GPIO 引脚 | JTAG 信号名称 |
---|---|---|
棕色(针脚 5) |
IO14 |
TMS |
黄色(针脚 3) |
IO12 |
TDI |
黑色(针脚 10) |
GND |
GND |
橙色(针脚 2) |
IO13 |
TCK |
绿色(针脚 4) |
IO15 |
TDO |
ESP-WROVER-KIT JTAG 安装程序
对于 FTDI C232HM-DDHSL-0 电缆,这些是与-WROVER ESP32-KIT 的连接。
C232HM-DDHSL-0 电线颜色 | ESP32 GPIO 引脚 | JTAG 信号名称 |
---|---|---|
棕色(针脚 5) |
IO14 |
TMS |
黄色(针脚 3) |
IO12 |
TDI |
橙色(针脚 2) |
IO13 |
TCK |
绿色(针脚 4) |
IO15 |
TDO |
这些表源自 FTDI C232HM-DDHSL-0 数据表
要在上启用 JTAG,请将跳线放在 TMS ESP-WROVER-KIT、TDO、TDI、TCK 和 S_TDI 引脚上,如下所示。

在 Windows 上进行调试 (ESP-IDF v4.2)
在 Windows 上设置调试
-
将 FTDI C232HM-DDHSL-0 的 USB 一端连接到您的计算机,另一端的操作如在 Espressif ESP32-DevKit C 和 ESP-WROVER-KIT (ESP-IDF v4.2) 上调试代码中所述。FTDI C232HM-DDHSL-0 设备应显示在设备管理器下的通用串行总线控制器中。
-
在通用串行总线设备列表下,右键单击 C232HM-DDHSL-0 设备,然后选择 Properties (属性)。
注意
该设备可能被列为 USB Serial Port (USB 串行端口)。
在属性窗口中,选择详细信息选项卡以查看设备的属性。如果未列出设备,请安装适用于 FTDI C232HM-DDHSL-0 的 Windows 驱动程序
。 -
在 “详细信息” 选项卡上,选择 “属性”,然后选择 “硬件” IDs。您将在值字段中看到与以下类似的内容。
FTDIBUS\COMPORT&VID_0403&PID_6014
在此示例中,供应商 ID 为 0403,产品 ID 为 6014。
验证它们是否 IDs 与输入相 IDs 匹配
projects/espressif/esp32/make/aws_demos/esp32_devkitj_v1.cfg
。在以 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。
-
从目标驱动程序字段下方的下拉框中,选择箭头,然后选择 Install Driver (安装驱动程序)。选择 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
-
如果您在高于 10.9 的 macOS 版本上运行,请使用以下命令卸载 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
开头的行中指定。更改 IDs 以匹配上一步 IDs 中system_profiler
输出的内容。 -
打开终端窗口,转到 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()
中停止。