View a markdown version of this page

乐鑫入门 ESP32-S2 - FreeRTOS

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

乐鑫入门 ESP32-S2

重要

此参考集成托管在已过时的 Amazon-FreeRTOS 存储库中。当您创建新项目时,我们建议从此处开始。如果您已经有一个基于现已弃用 Amazon-FreeRTOS 存储库的现有 FreeRTOS 项目,请参阅。Amazon-FreeRTOS Github 存储库迁移

注意

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

本教程向您展示如何开始使用乐信 S ESP32-S2 oC 和ESP32-S2-Saola-1开发板。

概述

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

  1. 将主板连接到主机。

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

  3. Cross-compile 二进制图像的 FreeRTOS 演示应用程序。

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

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

先决条件

在开始在 Espressif 主板上使用 FreeRTOS 之前,您必须设置您的账户和权限。 AWS

注册参加 AWS 账户

要开始使用 AWS,你需要一个 AWS 账户. 有关创建的信息 AWS 账户,请参阅《AWS 账户管理 参考指南》 AWS 账户中的 “入门”

要提供访问权限,请为您的用户、组或角色添加权限:

开始使用

注意

本教程中的 Linux 命令要求您使用 Bash Shell。

  1. 设置 Espressif 硬件。

    有关设置 ESP32-S2 开发板硬件的信息,请参阅 ESP32-S2-Saola-1 入门指南

    重要

    当您阅读到 Espressif 手册的入门 部分时,请暂停并返回到此页面上的说明部分。

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

  3. 设置开发环境

    要与您的主板通信,必须安装工具链。乐鑫为他们的主 ESP-IDF 板提供了开发软件的工具。由于将 ESP-IDF 自己的FreeRTOS内核版本集成为组件,因此亚马逊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-DevKitC,请安装 CP210x USB 转 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。)

  1. 如果您运行的是 macOS 或 Linux,请打开终端提示符。如果你运行的是 Windows,请打开 “ESP-IDF 4.x CMD” 应用程序(如果你在安装 ESP-IDF 工具链时加入了这个选项),否则打开 “命令提示符” 应用程序。

  2. 要验证您是否已安装 Python3,请运行以下命令:

    python --version

    此时显示已安装的版本。如果您未安装 Python 3.0.1 或更高版本,可以从 Python 网站进行安装。

  3. 你需要 AWS 命令行界面 (CLI) 来运行 AWS IoT 命令。如果你运行的是 Windows,请使用该easy_install awscli命令在 “命令” 或 “ESP-IDF 4.x CMD” 应用程序中安装 C AWS LI。

    如果你运行的是 macOS 或 Linux,请参阅安装 AWS CLI

  4. 运行

    aws configure

    并使用您的 AWS 访问密钥 ID、私有访问密钥和默认 AWS 区域配置 AWS CLI。有关更多信息,请参阅配置 AWS CLI

  5. 使用以下命令安装 AWS 适用于 Python 的软件开发工具包 (boto3):

    • 在 Windows 上,在 “命令” 或 “ESP-IDF 4.x CMD” 应用程序中,运行

      easy_install boto3
    • 在 macOS 或 Linux 上,运行

      pip install tornado nose --user

      然后运行

      pip install boto3 --user

FreeRTOS 包含 SetupAWS.py 脚本,可以更轻松地设置您的 Espressif 主板以连接到 AWS IoT。

运行配置脚本
  1. 要配置此脚本,请打开 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 安全性)

  2. 如果您运行的是 macOS 或 Linux,请打开终端提示符。如果你运行的是 Windows,请打开 “ESP-IDF 4.x CMD” 或 “命令” 应用程序。

  3. 导航到 freertos/tools/aws_config_quick_start 目录运行

    python SetupAWS.py setup

    脚本执行以下操作:

    • 创建 AWS IoT 事物、证书和策略。

    • 将 AWS IoT 策略附加到证书,将证书附加到 AWS IoT 事物。

    • aws_clientcredential.h文件中填充您的 AWS IoT 终端节点、 Wi-Fi SSID 和证书。

    • 设置您的证书和私有密钥格式,然后将其写入 aws_clientcredential_keys.h 标头文件

    注意

    该证书经过硬编码,仅用于演示目的。 Production-level 应用程序应将这些文件存储在安全的位置。

    有关 SetupAWS.py 的更多信息,请参阅 freertos/tools/aws_config_quick_start 目录中的 README.md 文件。

监控 MQTT 上的 MQTT 消息 AWS 云

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

要订阅 MQTT 主题,请使用 AWS IoT MQTT 客户端
  1. 登录 AWS IoT 控制台

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

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

当演示项目在您的设备上成功运行时,您会多次看到“Hello World!” 发送到您订阅的主题。

使用 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
构建和刷写项目
  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=esp32s2_saola_1 -DCOMPILER=xtensa-esp32s2 build

    您应该会看到以下示例的输出。

    Executing action: all (aliases: build) Running cmake in directory /path/to/hello_world/build Executing "cmake -G Ninja -DPYTHON_DEPS_CHECKED=1 -DESP_PLATFORM=1 -DVENDOR=espressif -DBOARD=esp32s2_saola_1 -DCOMPILER=xtensa-esp32s2 -DCCACHE_ENABLE=0 /path/to/hello_world"... -- The C compiler identification is GNU 8.4.0 -- The CXX compiler identification is GNU 8.4.0 -- The ASM compiler identification is GNU ... (more lines of build system output) [1628/1628] Generating binary image from built executable esptool.py v3.0 Generated /path/to/hello_world/build/aws_demos.bin Project build complete. To flash, run this command: esptool.py -p (PORT) -b 460800 --before default_reset --after hard_reset --chip esp32s2 write_flash --flash_mode dio --flash_size detect --flash_freq 80m 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/partition-table.bin 0x16000 build/ota_data_initial.bin 0x20000 build/aws_demos.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 开发工具包提供的 idf.py 脚本来构建和运行代码外,您还可以使用 CMake 构建项目。目前,它支持 Unix Makefile 和 Ninja 构建系统。

构建和刷写项目
  1. 在命令行窗口中,转到 FreeRTOS 下载目录的根目录。

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

    • Windows

      vendors\espressif\esp-idf\export.bat
    • Linux / macOS

      source vendors/espressif/esp-idf/export.sh
  3. 使用以下命令来生成构建文件。

    • 对于 Unix Makefiles

      cmake -DVENDOR=espressif -DBOARD=esp32s2_saola_1 -DCOMPILER=xtensa-esp32s2 -S . -B ./YOUR_BUILD_DIRECTORY -DAFR_ENABLE_ALL_MODULES=1 -DAFR_ENABLE_TESTS=0
    • 对于 Ninja

      cmake -DVENDOR=espressif -DBOARD=esp32s2_saola_1 -DCOMPILER=xtensa-esp32s2 -S . -B ./YOUR_BUILD_DIRECTORY -DAFR_ENABLE_ALL_MODULES=1 -DAFR_ENABLE_TESTS=0 -GNinja
  4. 构建项目。

    • 对于 Unix Makefiles

      make -C ./YOUR_BUILD_DIRECTORY -j8
    • 对于 Ninja

      ninja -C ./YOUR_BUILD_DIRECTORY -j8
  5. 擦除闪存,然后刷写主板。

    • 对于 Unix Makefiles

      make -C ./YOUR_BUILD_DIRECTORY erase_flash
      make -C ./YOUR_BUILD_DIRECTORY flash
    • 对于 Ninja

      ninja -C ./YOUR_BUILD_DIRECTORY erase_flash
      ninja -C ./YOUR_BUILD_DIRECTORY flash

附加信息

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