乐新 ESP32-WROOM-32SE 入门 - FreeRTOS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

乐新 ESP32-WROOM-32SE 入门

重要

此参考集成托管在 Amazon-FreeRTOS 存储库中,该存储库已过时。建议您创建新项目时建议您从这里开始。如果您已经有一个基于现已弃用的 Amazon-FreeRTOS 存储库的 FreeRTOS 项目,请参阅亚马逊 FreeRTOS Github 存储库迁移指南

注意
  • 要了解如何将 FreeRTOS 模块化库和演示集成到您自己的 Espressif IDF 项目中,请参阅我们的 ESP32-C3 平台精选参考集成

  • 目前,ESP32-WROOM-32SE 的 FreeRTOS 端口不支持对称多处理 (SMP) 功能。

本教程演示了如何使用 Nability ESP32-WROOM-32SE。要从我们的Amazon合作伙伴设备目录中购买一台,请参阅 ESP32-WROOM-32SE

概览

该教程将指导您完成以下步骤:

  1. 将主板连接到主机。

  2. 在您的主机上安装软件,以开发和调试微控制器主板的嵌入式应用程序。

  3. 将 FreeRTOS 演示应用程序交叉编译为二进制图像。

  4. 将应用程序二进制映像加载到您的主板中,然后运行该应用程序。

  5. 使用串行连接监视和调试正在运行的应用程序。

先决条件

在你开始在乐鑫开发板上使用 FreeRTOS 之前,你必须设置Amazon账户和权限。

要创建账户,请参阅创建和激活Amazon账户

要向您的账户添加Amazon Identity and Access Management (IAM) 用户,请参阅 IAM 用户指南中的添加用户。要授予您的 IAM 用户访问Amazon IoT和 FreeRTOS 的权限,请将以下 IAM 托管策略附加到您的 IAM 用户:

  • AmazonFreeRTOSFullAccess— 允许完全访问您的 IAM 用户的所有 FreeRTOS 资源 (freertos:*)

  • AWSIoTFullAccess— 允许完全访问您的 IAM 用户的所有 IAMAmazon IoT 资源 (iot:*)。

AmazonFreeRTOSFullAccess策略挂载到您的 IAM 用户
  1. 导航到 IAM 控制台

  2. 在导航窗格中,选择 Users(用户)。

  3. 在搜索文本框中输入您的用户名,然后从列表中选择该名称。

  4. 选择 Add permissions(添加权限)。

  5. 选择 Attach existing policies directly(直接附上现有策略)。

  6. 在搜索框中,输入 AmazonFreeRTOSFullAccess,从列表中选择它,然后选择 “下一步:查看”。

  7. 选择 Add permissions(添加权限)。

将 AWSIoTFullAccess 策略挂载到您的 IAM 用户
  1. 导航到 IAM 控制台

  2. 在导航窗格中,选择 Users(用户)。

  3. 在搜索文本框中输入您的用户名,然后从列表中选择该名称。

  4. 选择 Add permissions(添加权限)。

  5. 选择 Attach existing policies directly(直接附上现有策略)。

  6. 在搜索框中,输入 AWSIoTFullAccess,从列表中选择,然后选择下一步: 审核

  7. 选择 Add permissions(添加权限)。

有关 IAM 的更多信息,请参阅 IAM 用户指南

有关策略的更多信息,请参阅 IAM 中的权限和策略

开始使用

注意

本教程中的 Linux 命令要求你使用 Bash 外壳。

  1. 设置乐鑫硬件。

    有关设置 ESP32-WROOM-32SE 开发板硬件的信息,请参阅 ESP32-DevKit C V4 入门指南

    重要

    当您到达指南的 “分步安装” 部分时,请继续执行直到完成步骤 4(设置环境变量)。完成步骤 4 后停止,然后在此处执行其余步骤。

  2. 从以下地址下载Amazon FreeRTOS GitHub。(有关说明,请参阅 README.md 文件。)

  3. 设置您的开发环境

    要与您的开发板通信,您必须安装工具链。乐鑫提供 ESP-IDF 来为他们的开发板开发软件。由于 ESP-IDF 有自己的集成版本的 FreeRTOS 内核作为组件,Amazon FreeRTOS 包含删除了 FreeRTOS 内核的 ESP-IDF v4.2 的自定义版本。这修复了编译时出现的重复文件问题。要使用Amazon FreeRTOS 附带的 ESP-IDF v4.2 的自定义版本,请按照以下主机操作系统的说明进行操作。

    Windows

    1. 下载适用于 Windows 的 ESP-IDF 通用在线安装程序

    2. 运行通用在线安装程序

    3. 当你进入下载或使用 ESP-IDF 步骤时,选择使用现有 ESP-IDF 目录并将选择现有 ESP-IDF 目录设置为freertos/vendors/espressif/esp-idf

    4. 完成安装。

    macOS

    1. 按照 macOS 工具链先决条件标准设置(ESP-IDF v4.2)中的说明进行操作。

      重要

      当你看到 “后续步骤” 下的 “获取 ESP-IDF” 说明时,停下来,然后返回此页面上的说明。

    2. 打开一个命令行窗口。

    3. 导航到 FreeRTOS 下载目录,然后运行以下脚本下载并安装适用于您的平台的 espressif 工具链。

      vendors/espressif/esp-idf/install.sh
    4. 使用以下命令将 ESP-IDF 工具链工具添加到您的终端路径中。

      source vendors/espressif/esp-idf/export.sh

    Linux

    1. 按照 Linux 工具链先决条件标准设置(ESP-IDF v4.2)中的说明进行操作。

      重要

      当你看到 “后续步骤” 下的 “获取 ESP-IDF” 说明时,停下来,然后返回此页面上的说明。

    2. 打开一个命令行窗口。

    3. 导航到 FreeRTOS 下载目录,然后运行以下脚本下载并安装适用于您的平台的 Espressif 工具链。

      vendors/espressif/esp-idf/install.sh
    4. 使用以下命令将 ESP-IDF 工具链工具添加到您的终端路径中。

      source vendors/espressif/esp-idf/export.sh
  4. 建立串行连接。

    1. 要在您的主机和 ESP32-WROOM-32SE 之间建立串行连接,请安装 CP210x USB to UART Bridge VCP 驱动程序。您可以从 Silicon Labs 下载这些驱动程序。

    2. 按照建立与 ESP32 的串行连接中的步骤操作。

    3. 建立串行连接后,记下主板连接的串行端口。你需要它来刷新演示。

配置 FreeRTOS 演示应用程序

在本教程中,FreeRTOS 配置文件位于freertos/vendors/espressif/boards/board-name/aws_demos/config_files/FreeRTOSConfig.h。(例如,如果选择AFR_BOARD espressif.esp32_devkitc了,则配置文件位于freertos/vendors/espressif/boards/esp32/aws_demos/config_files/FreeRTOSConfig.h。)

重要

ATECC608A 设备具有一次性初始化,首次运行项目时(在调用期间C_InitToken),该初始化被锁定在设备上。但是,FreeRTOS 演示项目和测试项目有不同的配置。如果设备在演示项目配置期间被锁定,则并非测试项目中的所有测试都会成功。

  1. 按照中的步骤配置 FreeRTOS 演示项目配置 FreeRTOS 演示。当您进入最后一步 “格式化您的Amazon IoT证书” 时,请停止并执行以下步骤。

  2. Microchip 提供了多种脚本工具来帮助设置 ATECC608A 部件。导航到 freertos/vendors/microchip/example_trust_chain_tool 目录并打开 README.md 文件。

  3. 要配置您的设备,请按照README.md文件中的说明操作。相应步骤包括:

    1. 创建证书颁发机构并将其注册到 Amazon。

    2. 在 ATECC608A 上生成您的密钥,并导出公有密钥和设备序列号。

    3. 为设备生成证书并将该证书注册到 Amazon。

  4. 按照 开发人员模式密钥预置 的说明,将 CA 证书和设备证书加载到设备上。

在 Amazon 云上监控 MQTT 消息

在运行 FreeRTOS 演示项目之前,可以在Amazon IoT控制台中设置 MQTT 客户端以监控您的设备发送到Amazon云端的消息。

使用 Amazon IoT MQTT 客户端订阅 MQTT 主题
  1. 登录到 Amazon IoT 控制台

  2. 在导航窗格中,选择 “测试”,然后选择 “MQTT 测试客户端”。

  3. 订阅主题中,输入,your-thing-name/example/topic然后选择订阅主题

使用 idf.py 脚本构建、刷新和运行 FreeRTOS 演示项目

您可以使用 Espressif 的 IDF 实用程序 (idf.py) 生成编译文件、构建应用程序二进制文件,并将二进制文件刷新到您的设备上。

注意

某些设置可能需要使用端口选项 “-p port-nameidf.py 来指定正确的端口,如以下示例所示。

idf.py -p /dev/cu.usbserial-00101301B flash
在 Windows、Linux 和 macOS 上构建和刷新 FreeRTOS (ESP-IDF v4.2)
  1. 导航到 FreeRTOS 下载目录的根目录。

  2. 在命令行窗口中,输入以下命令将 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
  3. 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 文件。

  4. 使用以下命令清除开发板的闪存。

    idf.py erase_flash
  5. 使用该idf.py脚本将应用程序二进制文件刷新到您的开发板上。

    idf.py flash
  6. 使用以下命令监控主板的串行端口的输出内容。

    idf.py monitor
    注意
    • 您可以将这些命令组合起来,如以下示例所示。

      idf.py erase_flash flash monitor
    • 对于某些主机设置,在刷新主板时必须指定端口,如以下示例所示。

      idf.py erase_flash flash monitor -p /dev/ttyUSB1

使用 cMake 构建和刷新 FreeRTOS

除了使用 IDF SDK 提供的idf.py脚本来构建和运行您的代码外,您还可以使用 CMake 构建项目。目前它支持 Unix Makefile 和 Ninja 编译系统。

生成和刷新项目
  1. 在命令行窗口中,导航到 FreeRTOS 下载目录的根目录。

  2. 运行以下脚本将 ESP-IDF 工具添加到外壳的 PATH 中。

    Windows
    vendors\espressif\esp-idf\export.bat
    Linux/macOS
    source vendors/espressif/esp-idf/export.sh
  3. 输入以下命令以生成生成生成文件。

    使用 Unix 生成文件
    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
    和忍者在一起
    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
  4. 擦除闪光灯,然后刷新电路板。

    使用 Unix 生成文件
    make -C ./YOUR_BUILD_DIRECTORY erase_flash
    make -C ./YOUR_BUILD_DIRECTORY flash
    和忍者在一起
    ninja -C ./YOUR_BUILD_DIRECTORY erase_flash
    ninja -C ./YOUR_BUILD_DIRECTORY flash

其他信息

有关 Everability ESP32 主板的更多信息,请参阅以下主题: