Infineon OPTIGA Trust X 和 XMC4800 IoT 连接工具包入门 - FreeRTOS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Infineon OPTIGA Trust X 和 XMC4800 IoT 连接工具包入门

重要

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

本教程提供 Infineon OPTIGA Trust X 安全元件和 XMC4800 IoT 连接工具包的入门说明。与 Infineon XMC4800 IoT Connectivity Kit 入门 教程相比,本指南将介绍如何使用 Infineon OPTIGA Trust X 安全元件提供安全凭证。

您需要以下硬件:

  1. 主机 MCU – Infineon XMC4800 IoT 连接工具包,请访问 Amazon合作伙伴设备目录来从我们的合作伙伴购买一个。

  2. 安全扩展包:

    • 安全元件 - Infineon OPTIGA Trust X。

      请访问 Amazon 合作伙伴设备目录来从我们的合作伙伴购买一个。

    • 个性化主板 – Infineon OPTIGA 个性化主板。

    • 适配器主板 – Infineon MyIoT 适配器。

要按照此处的步骤操作,必须打开与主板的串行连接以查看日志记录和调试信息。(其中一个步骤要求您从开发主板的串行调试输出中复制公有密钥,并将其粘贴到文件中。)为此,除了 XMC4800 IoT 连接工具包外,您还需要一个 3.3V 的 USB/串行转换器。已知 JBtek EL-PN-47310126 USB/串口转换器适用于此演示。您还需要三条公对公跳线(用于接收 (RX)、传输 (TX) 和接地 (GND)),以将串行电缆连接到 Infineon MyIoT 适配器主板。

在开始之前,您必须配置 Amazon IoT 和 FreeRTOS 下载以将您的设备连接到 Amazon 云。有关说明,请参阅 选项 2:板载私有密钥生成。在本教程中,FreeRTOS 下载目录的路径称为 freertos

概述

本教程包含以下步骤:

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

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

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

  4. 要进行监控和调试,请跨串行连接与主板上运行的应用程序进行交互。

设置开发环境

FreeRTOS 使用 Infineon 的 DAVE 开发环境来编程 XMC4800。在开始之前,请下载并安装 DAVE 和一些 J-Link 驱动程序,以便与板载调试器通信。

安装 DAVE

  1. 转到 Infineon 的 DAVE 软件下载页面。

  2. 根据您的操作系统选择 DAVE 程序包,然后提交您的注册信息。注册后,您应收到确认电子邮件,其中包括下载 .zip 文件的链接。

  3. 下载 DAVE 程序包 .zip 文件 (DAVE_version_os_date.zip),然后将其解压缩到您要安装 DAVE 的位置(例如,C:\DAVE4)。

    注意

    一些 Windows 用户报告在使用 Windows 资源管理器解压缩文件时遇到问题。我们建议您使用第三方程序,如 7-Zip。

  4. 要启动 DAVE,运行在解压缩的 DAVE_version_os_date.zip 文件夹中找到的可执行文件。

有关更多信息,请参阅 DAVE 快速入门指南

要与 XMC4800 IoT 连接工具包的板载调试探测器通信,您需要 J-Link Software and Documentation Pack 中附带的驱动程序。您可以从 Segger 的 J-Link 软件下载页面下载 J-Link Software and Documentation Pack。

建立串行连接

将 USB/串口转换器电缆连接至 Infineon Shield2Go 适配器。此操作可使您的主板使用可在开发计算机上查看的格式发送日志记录和调试信息。要设置串行连接,请执行以下操作:

  1. 将 RX 针脚连接到您的 USB/串口转换器的 TX 针脚。

  2. 将 TX 引脚连接到 USB/串口转换器的 RX 引脚。

  3. 将您的串口转换器的接地针脚连接到主板上的 GND 针脚之一。设备必须共享一个公用接地。

电源从 USB 调试端口提供,因此无需将串口适配器的正电压针脚连接到主板。

注意

一些串行电缆使用 5V 信号电平。XMC4800 主板和 Wi-Fi Click 模块需要 3.3V。请勿使用主板的 IOREF 跳线将主板的信号更改为 5V。

通过电缆连接,您可以打开与终端仿真器(例如 GNU 屏幕)的串行连接。默认情况下,波特率设置为 115200,8 个数据位,无奇偶校验,1 个停止位。

在云上监控 MQTT 消息

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

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

  2. 在导航窗格中选择测试,然后选择 MQTT 测试客户端,以便打开 MQTT 客户端。

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

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

构建并运行 FreeRTOS 演示项目

将 FreeRTOS 演示导入 DAVE

  1. 启动 DAVE。

  2. 从 DAVE 中,选择 File (文件),然后选择 Import (导入)。展开 Infineon 文件夹,选择 DAVE Project (DAVE 项目),然后选择 Next (下一步)

  3. Import DAVE Projects (导入 DAVE 项目) 窗口中,选择 Select Root Directory (选择根目录),选择 Browse (浏览),然后选择 XMC4800 演示项目。

    在您解压缩 FreeRTOS 下载文件的目录中,演示项目位于 projects/infineon/xmc4800_plus_optiga_trust_x/dave4/aws_demos/dave4 中。

    确保清除了 Copy Projects Into Workspace (将项目复制到工作区)

  4. 选择 Finish (结束)

    aws_demos 项目应导入到工作区中并且激活。

  5. Project (项目) 菜单,选择 Build Active Project (生成活动项目)

    确保项目生成,没有错误。

运行 FreeRTOS 演示项目

  1. Project (项目) 菜单,选择 Rebuild Active Project (重新生成活动项目) 以重新生成 aws_demos 并确认接受您的配置更改。

  2. Project Explorer (项目资源管理器) 中,右键单击 aws_demos,选择 Debug As (调试方式),然后选择 DAVE C/C++ Application (DAVE C/C++ 应用程序)

  3. 双击 GDB SEGGER J-Link Debugging (GDB SEGGER J-Link 调试) 以创建调试确认。选择 Debug (调试)

  4. 当调试器在 main() 中的断点停止时,在 Run (运行) 菜单中选择 Resume (恢复)

此时,请继续执行选项 2:板载私有密钥生成中的公有密钥提取步骤。完成所有步骤后,转到 Amazon IoT 控制台。您之前设置的 MQTT 客户端应显示您的设备发送的 MQTT 消息。通过设备的串行连接,您应该在 UART 输出上看到类似以下内容的信息:

0 0 [Tmr Svc] Starting key provisioning... 1 1 [Tmr Svc] Write root certificate... 2 4 [Tmr Svc] Write device private key... 3 82 [Tmr Svc] Write device certificate... 4 86 [Tmr Svc] Key provisioning done... 5 291 [Tmr Svc] Wi-Fi module initialized. Connecting to AP... .6 8046 [Tmr Svc] Wi-Fi Connected to AP. Creating tasks which use network... 7 8058 [Tmr Svc] IP Address acquired [IP Address] 8 8058 [Tmr Svc] Creating MQTT Echo Task... 9 8059 [MQTTEcho] MQTT echo attempting to connect to [MQTT Broker]. ...10 23010 [MQTTEcho] MQTT echo connected. 11 23010 [MQTTEcho] MQTT echo test echoing task created. .12 26011 [MQTTEcho] MQTT Echo demo subscribed to iotdemo/# 13 29012 [MQTTEcho] Echo successfully published 'Hello World 0' .14 32096 [Echoing] Message returned with ACK: 'Hello World 0 ACK' .15 37013 [MQTTEcho] Echo successfully published 'Hello World 1' 16 40080 [Echoing] Message returned with ACK: 'Hello World 1 ACK' .17 45014 [MQTTEcho] Echo successfully published 'Hello World 2' .18 48091 [Echoing] Message returned with ACK: 'Hello World 2 ACK' .19 53015 [MQTTEcho] Echo successfully published 'Hello World 3' .20 56087 [Echoing] Message returned with ACK: 'Hello World 3 ACK' .21 61016 [MQTTEcho] Echo successfully published 'Hello World 4' 22 64083 [Echoing] Message returned with ACK: 'Hello World 4 ACK' .23 69017 [MQTTEcho] Echo successfully published 'Hello World 5' .24 72091 [Echoing] Message returned with ACK: 'Hello World 5 ACK' .25 77018 [MQTTEcho] Echo successfully published 'Hello World 6' 26 80085 [Echoing] Message returned with ACK: 'Hello World 6 ACK' .27 85019 [MQTTEcho] Echo successfully published 'Hello World 7' .28 88086 [Echoing] Message returned with ACK: 'Hello World 7 ACK' .29 93020 [MQTTEcho] Echo successfully published 'Hello World 8' .30 96088 [Echoing] Message returned with ACK: 'Hello World 8 ACK' .31 101021 [MQTTEcho] Echo successfully published 'Hello World 9' 32 104102 [Echoing] Message returned with ACK: 'Hello World 9 ACK' .33 109022 [MQTTEcho] Echo successfully published 'Hello World 10' .34 112047 [Echoing] Message returned with ACK: 'Hello World 10 ACK' .35 117023 [MQTTEcho] Echo successfully published 'Hello World 11' 36 120089 [Echoing] Message returned with ACK: 'Hello World 11 ACK' .37 122068 [MQTTEcho] MQTT echo demo finished. 38 122068 [MQTTEcho] ----Demo finished----

使用 CMake 构建 FreeRTOS 演示

此部分介绍在 Windows 上使用 CMake 并将 MingW 作为本机构建系统。有关使用 CMake 和其他操作系统及选项的更多信息,请参阅将 CMake 与 FreeRTOS 配合使用。(MinGW 是一个适用于本机 Microsoft Windows 应用程序的简约开发环境。)

如果您不愿意使用 IDE 进行 FreeRTOS 开发,您可以使用 CMake 来构建和运行演示应用程序,或者运行使用第三方编辑器和调试工具开发的应用程序。

使用 CMake 构建 FreeRTOS 演示
  1. 设置 GNU Arm 嵌入式工具链。

    1. Arm 嵌入式工具链下载页面下载工具链的 Windows 版本。

      注意

      由于 objcopy 实用程序中报告了一个错误,我们建议您下载“8-2018-q4-major”以外的版本。

    2. 打开下载的工具链安装程序,然后按照向导中的说明操作。

    3. 在安装向导的最后一个页面上,选择 Add path to environment variable (将路径添加到环境变量) 以将工具链路径添加到系统路径环境变量。

  2. 安装 CMake 和 MinGW。

    有关说明,请参阅 CMake 先决条件

  3. 创建一个文件夹用于存放生成的构建文件 (build-folder)。

  4. 将目录更改为您的 FreeRTOS 下载目录 (freertos),并使用以下命令来生成构建文件:

    cmake -DVENDOR=infineon -DBOARD=xmc4800_plus_optiga_trust_x -DCOMPILER=arm-gcc -S . -B build-folder -G "MinGW Makefiles" -DAFR_ENABLE_TESTS=0
  5. 将目录更改为构建目录 (build-folder),然后使用以下命令构建二进制文件:

    cmake --build . --parallel 8

    此命令会在构建目录中构建输出二进制文件 aws_demos.hex

  6. 使用 JLINK 刷写和运行映像。

    1. 从构建目录 (build-folder),使用以下命令创建刷写脚本:

      echo loadfile aws_demos.hex > flash.jlink echo r >> flash.jlink echo g >> flash.jlink echo q >> flash.jlink
    2. 使用 JLNIK 可执行文件刷写映像。

      JLINK_PATH\JLink.exe -device XMC4800-2048 -if SWD -speed auto -CommanderScript flash.jlink

      通过您与主板建立的串行连接应该可以看到应用程序日志。继续执行 选项 2:板载私有密钥生成 中的公有密钥提取步骤。完成所有步骤后,转到 Amazon IoT 控制台。您之前设置的 MQTT 客户端应显示您的设备发送的 MQTT 消息。

故障排除

有关一般故障排除信息,请参阅问题排查入门