

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

# Infineon OPTIGA Trust X 和 XMC4800 IoT 连接工具包入门
<a name="getting_started_infineon_trust_x"></a>

**重要**  <a name="deprecation-message"></a>
此参考集成托管在已弃用的 Amazon-FreeRTOS 存储库中。当您创建新项目时，我们建议[从此处开始](freertos-getting-started-modular.md)。如果您已经有一个基于现已 Amazon-FreeRTOS 弃用的存储库的 FreeRTOS 项目，请参阅。[Amazon-FreeRTOS Github 存储库迁移](github-repo-migration.md)

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

您需要以下硬件：

1. [主机 MCU-英飞凌 XMC4800 物联网连接套件，请访问 AWS 合作伙伴设备目录，从我们的合作伙伴处购买。](https://devices.amazonaws.com/detail/a3G0L00000AANsbUAH/XMC4800-IoT-Amazon-FreeRTOS-Connectivity-Kit-WiFi)

1. 安全扩展包：
   + 安全元件 - Infineon OPTIGA Trust X。

     访问 AWS 合作伙伴设备目录，从我们的[合作伙伴](https://devices.amazonaws.com/detail/a3G0h000000TePnEAK/OPTIGA%E2%84%A2-Trust-X-Security-Solution)处购买。
   + 个性化主板 – Infineon OPTIGA 个性化主板。
   + 适配器板-英飞凌 MyIo T 型适配器。

要按照此处的步骤操作，必须打开与主板的串行连接以查看日志记录和调试信息。（其中一个步骤要求您从开发板的串行调试输出中复制公钥并将其粘贴到文件中。） 为此，除了 XMC4800 物联网连接套件外，您还需要一个 3.3V USB/Serial 转换器。众所周知，[JBTek EL-PN-47310126](https://www.amazon.com/gp/product/B00QT7LQ88) USB/Serial 转换器适用于此演示。您还需要三根公对公[跳线](https://www.amazon.com/gp/product/B077N6HFCX/)（用于接收 (RX)、传输 (TX) 和接地 (GND)），才能将串行电缆连接到英飞凌 T 适配器板。 MyIo

在开始之前，您必须进行配置 AWS IoT 并下载 FreeRTOS 才能将您的设备连接到云端。 AWS 有关说明，请参阅[选项 2：板载私有密钥生成](dev-mode-key-provisioning.md#dev-mode-key-provisioning-option2)。在本教程中，FreeRTOS 下载目录的路径称为 `{{freertos}}`。

## 概述
<a name="getting_started_infineon_trust_x_overview"></a>

本教程包含以下步骤：

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

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

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

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

## 设置开发环境
<a name="infineon_trust_x_setup_env"></a>

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

### 安装 DAVE
<a name="infineon_trust_x_install_dave"></a>

1. 转到 Infineon 的 [DAVE 软件下载](https://infineoncommunity.com/dave-download_ID645)页面。

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

1. 下载 DAVE 程序包 .zip 文件 (`DAVE_{{version}}_{{os}}_{{date}}.zip`)，然后将其解压缩到您要安装 DAVE 的位置（例如，`C:\DAVE4`）。
**注意**  
一些 Windows 用户报告在使用 Windows 资源管理器解压缩文件时遇到问题。我们建议您使用第三方程序，如 7-Zip。

1. 要启动 DAVE，运行在解压缩的 `DAVE_{{version}}_{{os}}_{{date}}.zip` 文件夹中找到的可执行文件。

有关更多信息，请参阅 [DAVE 快速入门指南](https://www.infineon.com/dgdl/Infineon-DAVE_Quick_Start-GS-v02_00-EN.pdf?fileId=5546d4624cb7f111014d059f7b8c712d)。

### 安装 Segger 驱动程序 J-Link
<a name="infineon_trust_x_install_jlink"></a>

要与 XMC4800 IoT Connectivity 套件的板载调试器进行通信，您需要 J-Link 软件和文档包中包含的驱动程序。您可以从 Segger 的 J-Link 软件[下载页面下载J-Link 软件](https://www.segger.com/downloads/jlink/#J-LinkSoftwareAndDocumentationPack)和文档包。

## 建立串行连接
<a name="infineon_trust_x_install_serial_connection"></a>

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

1. 将 RX 引脚连接到 USB/Serial 转换器的 TX 引脚。

1. 将 TX 引脚连接到 USB/Serial 转换器的 RX 引脚。

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

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

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

 通过电缆连接，您可以打开与终端仿真器（例如 [GNU 屏幕](https://www.gnu.org/software/screen/)）的串行连接。默认情况下，波特率设置为 115200，8 个数据位，无奇偶校验，1 个停止位。

## 在云上监控 MQTT 消息
<a name="infineon_trust_x_monitoring"></a>

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

**要通过订阅 MQTT 主题 AWS IoT MQTT 客户端**

1. 登录 [AWS IoT 控制台](https://console.aws.amazon.com/iotv2/)。

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

1. 在 **Subscription topic (订阅主题)**中，输入 **{{your-thing-name}}/example/topic**，然后选择 **Subscribe to topic (订阅主题)**。

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

## 构建并运行 FreeRTOS 演示项目
<a name="infineon_trust_x_build_and_run_example"></a>

### 将 FreeRTOS 演示导入 DAVE
<a name="infineon_trust_x_freertos_import-project"></a><a name="infineon_trust_x_load_project"></a>

1. 启动 DAVE。

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

1. 在 **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 (将项目复制到工作区)**。

1. 选择**结束**。

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

1. 从 **Project (项目)** 菜单，选择 **Build Active Project (生成活动项目)**。

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

### 运行 FreeRTOS 演示项目
<a name="infineon_trust_x_run_examples"></a>

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

1. 在 “**项目资源管理器**” 中`aws_demos`，右键单击，选择 “**调试为**”，然后选择 **DAVE C/C \+\+ 应用程序**。

1. Double-click **GDB SEGGER J-Link 调试**以创建调试确认。选择 **Debug (调试)**。

1. 当调试器在 `main()` 中的断点停止时，在 **Run (运行)** 菜单中选择 **Resume (恢复)**。

此时，请继续执行[选项 2：板载私有密钥生成](dev-mode-key-provisioning.md#dev-mode-key-provisioning-option2)中的公有密钥提取步骤。所有步骤完成后，转到 AWS 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 演示
<a name="infineon_trust_x_cmake"></a>

此部分介绍在 Windows 上使用 CMake 并将 MingW 作为本机构建系统。有关使用 CMake 和其他操作系统及选项的更多信息，请参阅[将 CMake 与 FreeRTOS 配合使用](getting-started-cmake.md)。（[MinGW](https://sourceforge.net/projects/mingw-w64/files/) 是一个适用于本机 Microsoft Windows 应用程序的简约开发环境。）

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

**使用 CMake 构建 FreeRTOS 演示**

1. 设置 GNU Arm 嵌入式工具链。

   1. 从 [Arm 嵌入式工具链下载页面](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads)下载工具链的 Windows 版本。
**注意**  
由于 objcopy 实用程序中[报告了一个错误](https://bugs.launchpad.net/gcc-arm-embedded/+bug/1810274)，我们建议您下载“8-2018-q4-major”以外的版本。

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

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

1. 安装 CMake 和 MinGW。

   有关说明，请参阅 [CMake 先决条件](getting-started-cmake.md#building-cmake-prereqs)。

1. 创建一个包含生成的构建文件的文件夹 ({{build-folder}})。

1. 将目录更改为您的 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
   ```

1. 将目录更改为生成目录 ({{build-folder}})，然后使用以下命令生成二进制文件：

   ```
   cmake --build . --parallel 8
   ```

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

1. 使用 [JLINK](getting_started_infineon.md#install-jlink) 刷写和运行映像。

   1. 在生成目录 ({{build-folder}}) 中，使用以下命令创建 Flash 脚本：

      ```
      echo loadfile aws_demos.hex > flash.jlink
      echo r >> flash.jlink
      echo g >> flash.jlink
      echo q >> flash.jlink
      ```

   1. 使用 JLNIK 可执行文件刷写映像。

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

      通过您与主板建立的[串行连接](getting_started_infineon.md#install-serial-connection)应该可以看到应用程序日志。继续执行 [选项 2：板载私有密钥生成](dev-mode-key-provisioning.md#dev-mode-key-provisioning-option2) 中的公有密钥提取步骤。完成所有步骤后，进入 AWS IoT 控制台。您之前设置的 MQTT 客户端应显示您的设备发送的 MQTT 消息。

### 问题排查
<a name="infineon_trust_x_troubleshooting"></a>

有关一般故障排除信息，请参阅[问题排查入门](gsg-troubleshooting.md)。