本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
乐鑫入门 ESP32-WROOM-32SE
重要
此参考集成托管在已弃用的 Amazon-FreeRTOS 存储库中。当您创建新项目时,我们建议从此处开始。如果您已经有一个基于现已 Amazon-FreeRTOS 弃用的存储库的 FreeRTOS 项目,请参阅。Amazon-FreeRTOS Github 存储库迁移
注意
-
要探索如何将 FreeRTOS 模块化库和演示集成到您自己的 Espressif IDF 项目中,请参阅我们精选的平台参考集成。 ESP32-C3
-
目前,的 FreeRTOS 端口不支持 ESP32-WROOM-32SE 对称多处理 (SMP) 功能。
本教程将向您展示如何开始使用乐新。 ESP32-WROOM-32SE要在合作伙伴设备目录中向我们的 AWS 合作伙伴购买一台,请参阅ESP32-WROOM-32SE
概述
该教程将指导您完成以下步骤:
-
将主板连接到主机。
-
在您的主机上安装软件,以开发和调试微控制器主板的嵌入式应用程序。
-
将 FreeRTOS 演示应用程序交叉编译为二进制映像。
-
将应用程序二进制映像加载到您的主板中,然后运行该应用程序。
-
使用串行连接监控和调试正在运行的应用程序。
先决条件
在开始在乐鑫看板上使用 FreeRTOS 之前,您必须设置账户和权限。 AWS
注册获取 AWS 账户
要开始使用 AWS,你需要一个 AWS 账户。有关创建的信息 AWS 账户,请参阅《AWS 账户管理 参考指南》 AWS 账户中的入门指南。
要提供访问权限,请为您的用户、组或角色添加权限:
-
中的用户和群组 AWS IAM Identity Center:
创建权限集合。按照《AWS IAM Identity Center 用户指南》中创建权限集的说明进行操作。
-
通过身份提供者在 IAM 中托管的用户:
创建适用于身份联合验证的角色。按照《IAM 用户指南》中针对第三方身份提供者创建角色(联合身份验证)的说明进行操作。
-
IAM 用户:
-
创建您的用户可以担任的角色。按照《IAM 用户指南》中为 IAM 用户创建角色的说明进行操作。
-
(不推荐使用)将策略直接附加到用户或将用户添加到用户组。按照《IAM 用户指南》中向用户添加权限(控制台)中的说明进行操作。
-
开始使用
注意
本教程中的 Linux 命令要求您使用 Bash Shell。
-
设置 Espressif 硬件。
有关设置 ESP32-WROOM-32SE 开发板硬件的信息,请参阅《 ESP32-DevKitC V4 入门指南》
。 重要
在该指南的分步安装部分,请按照步骤进行操作,直到完成步骤 4(设置环境变量)。完成步骤 4 后,请暂停,然后按照此处的其余步骤进行操作。
-
设置开发环境。
要与您的主板通信,必须安装工具链。乐鑫为他们的开发板 ESP-IDF 提供开发软件。由于将自己的 Fre ESP-IDF eRTOS 内核版本集成为组件,因此 Amazon FreeRTOS 包含删除了 FreeRTOS 内核的 ESP-IDF v4.2 的自定义版本。这修复了编译时重复文件的问题。要使用 Amazon FreeRTOS 附带的 ESP-IDF v4.2 的自定义版本,请按照以下主机操作系统的说明进行操作。
Windows
-
下载适用于 Windows ESP-IDF 的通用在线安装程序
。 -
运行通用在线安装程序。
-
进入 “下载或使用” 步骤后 ESP-IDF,选择 “使用现有 ESP-IDF 目录”,然后将 “选择现有 ESP-IDF 目录” 设置为
。freertos/vendors/espressif/esp-idf -
完成安装。
macOS
-
按照 macOS 标准设置工具链先决条件 (ESP-IDF v4.2)
中的说明进行操作。 重要
当您到达 “后续步骤 ESP-IDF” 下的 “获取” 说明时,请停下来,然后返回本页上的说明。
-
打开一个命令行窗口。
-
转到 FreeRTOS 下载目录,然后运行以下脚本来下载并安装适用于您平台的 espressif 工具链。
vendors/espressif/esp-idf/install.sh -
使用以下命令将 ESP-IDF 工具链工具添加到终端的路径中。
source vendors/espressif/esp-idf/export.sh
Linux
-
按照适用于 Linux 的标准设置工具链先决条件 (ESP-IDF v4.2) 中的说明进行
操作。 重要
当您到达 “后续步骤 ESP-IDF” 下的 “获取” 说明时,请停下来,然后返回本页上的说明。
-
打开一个命令行窗口。
-
转到 FreeRTOS 下载目录,然后运行以下脚本来下载并安装适用于您平台的 Espressif 工具链。
vendors/espressif/esp-idf/install.sh -
使用以下命令将 ESP-IDF 工具链工具添加到终端的路径中。
source vendors/espressif/esp-idf/export.sh
-
-
建立串行连接。
-
要在主机与之间建立串行连接 ESP32-WROOM-32SE,请安装 CP210x USB 到 UART Bridge VCP 驱动程序。您可以从 Silicon Labs
下载这些驱动程序。 -
按照建立与 ESP32 的串行连接
中的步骤操作。 -
建立串行连接后,记下主板连接的串行端口。您需要它来刷写演示。
-
配置 FreeRTOS 演示应用程序
在本教程中,FreeRTOS 配置文件位于以下文件中:。(例如,如果选择 freertos/vendors/espressif/boards/board-name/aws_demos/config_files/FreeRTOSConfig.hAFR_BOARD espressif.esp32_devkitc,则配置文件位于以下文件中:。) freertos/vendors/espressif/boards/esp32/aws_demos/config_files/FreeRTOSConfig.h
重要
ATECC608A 设备具有一次性初始化功能,该功能在首次运行项目时(在调用 C_InitToken 期间)被锁定到设备上。但是,FreeRTOS 演示项目和测试项目的配置不同。如果设备在演示项目配置期间被锁定,则并非测试项目中的所有测试都会成功。
-
按照配置 FreeRTOS 演示中的步骤配置 FreeRTOS 演示项目。进入最后一步后,要格式化 AWS IoT 凭据,请停止并执行以下步骤。
-
Microchip 提供了多种脚本工具来帮助设置 ATECC608A 部件。导航到
目录并打开freertos/vendors/microchip/example_trust_chain_toolREADME.md文件。 -
请按照
README.md文件中的说明预置您的设备。相应步骤包括:-
创建并注册证书颁发机构 AWS。
-
在 ATECC608A 上生成您的密钥,并导出公有密钥和设备序列号。
-
为设备生成证书并向注册该证书 AWS。
-
-
按照 Developer-mode 密钥配置 的说明,将 CA 证书和设备证书加载到设备上。
在上监控 MQTT 消息 AWS 云
在运行 FreeRTOS 演示项目之前,您可以在控制台中 AWS IoT 设置 MQTT 客户端,以监控您的设备发送到云端的消息。 AWS
要通过订阅 MQTT 主题 AWS IoT MQTT 客户端
-
登录 AWS IoT 控制台
。 -
在导航窗格中,选择测试,然后选择 MQTT 测试客户端。
-
在订阅主题中,输入
,然后选择订阅主题。your-thing-name/example/topic
使用 idf.py 脚本构建、刷写和运行 FreeRTOS 演示项目
您可以使用 Espressif 的 IDF (idf.py) 生成构建文件,构建应用程序二进制文件,将二进制文件刷写到设备。
注意
某些设置可能需要您使用在 idf.py 中使用端口选项“-p port-name”来指定正确的端口,如以下示例所示。
idf.py -p /dev/cu.usbserial-00101301B flash
在 Windows、Linux 和 macOS 上构建和刷新 FreeRTOS (v4.2) ESP-IDF
-
转到 FreeRTOS 下载目录的根目录。
-
在命令行窗口中,输入以下命令将 ESP-IDF 工具添加到终端的 PATH 中:
- Windows(“命令”应用程序)
-
vendors\espressif\esp-idf\export.bat - Windows(“ESP-IDF 4.x CMD” 应用程序)
-
(打开应用程序时就已经完成此操作。)
- Linux / macOS
-
source vendors/espressif/esp-idf/export.sh
-
在
build目录中配置 cmake 并使用以下命令构建固件映像。idf.py -DVENDOR=espressif -DBOARD=esp32_ecc608a_devkitc -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 构建和刷写 FreeRTOS
除了使用 IDF 开发工具包提供的 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_plus_ecc608a_devkitc -DCOMPILER=xtensa-esp32 -S . -B ./YOUR_BUILD_DIRECTORY-DAFR_ENABLE_ALL_MODULES=1 -DAFR_ENABLE_TESTS=0 - 对于 Ninja
-
cmake -DVENDOR=espressif -DBOARD=esp32_plus_ecc608a_devkitc -DCOMPILER=xtensa-esp32 -S . -B ./YOUR_BUILD_DIRECTORY-DAFR_ENABLE_ALL_MODULES=1 -DAFR_ENABLE_TESTS=0 -GNinja
-
擦除闪存,然后刷写主板。
- 对于 Unix Makefiles
-
make -C ./YOUR_BUILD_DIRECTORYerase_flashmake -C ./YOUR_BUILD_DIRECTORYflash - 对于 Ninja
-
ninja -C ./YOUR_BUILD_DIRECTORYerase_flashninja -C ./YOUR_BUILD_DIRECTORYflash
附加信息
有关 Espressif ESP32 主板的更多信息,请参阅以下主题: