

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

# Infineon XMC4800 IoT Connectivity Kit 入门
<a name="getting_started_infineon"></a>

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

本教程提供有关 Infineon XMC4800 IoT 连接工具包入门的说明。[如果您没有英飞凌 XMC4800 物联网连接套件，请访问 AWS 合作伙伴设备目录，从我们的合作伙伴处购买。](https://devices.amazonaws.com/detail/a3G0L00000AANsbUAH/XMC4800-IoT-Amazon-FreeRTOS-Connectivity-Kit-WiFi)

如果要打开与主板的串行连接以查看日志和调试信息，则除了 XMC4800 IoT 连接套件外，还需要一个 3.3V USB/Serial 转换器。[CP2104 是一款常见的 USB/Serial 转换器，在 Adafruit 的 CP2104 Friend 等主板中广泛使用。](https://www.adafruit.com/product/3309)

在开始之前，您必须进行配置 AWS IoT 并下载 FreeRTOS 才能将您的设备连接到云端。 AWS 有关说明，请参阅[初始步骤](freertos-prereqs.md)：在本教程中，FreeRTOS 下载目录的路径称为 `{{freertos}}`。

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

本教程包含有关以下入门步骤的说明：

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

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

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

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

## 设置开发环境
<a name="infineon-setup-env"></a>

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

### 安装 DAVE
<a name="install-dave"></a>

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

1. 根据您的操作系统选择 DAVE 程序包，然后提交您的注册信息。注册到 Infineon 之后，您应收到确认电子邮件，其中包括下载 .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="install-jlink"></a>

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

## 建立串行连接
<a name="install-serial-connection"></a>

设置串行连接是可选的，但建议设置。通过串行连接，您的主板使用可在开发计算机上查看的格式，发送日志记录和调试信息。

XMC4800 演示应用程序在引脚 P0.0 和上使用 UART 串行连接 P0.1，这些引脚标在 XMC4800 Relax EtherCAT 主板的丝网印刷上。要设置串行连接，请执行以下操作：

1. 将标有 “RX<P0.0” 的引脚连接到 USB/Serial 转换器的 “TX” 引脚。

1. 将标有 “TX>P0.1” 的引脚连接到 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-monitor-mqtt"></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-build-and-run-example"></a>

### 将 FreeRTOS 演示导入 DAVE
<a name="infineon-freertos-import-project"></a><a name="infineon-load-project"></a>

1. 启动 DAVE。

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

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

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

   确保 **Copy Projects Into Workspace (将项目复制到工作区)** 处于未选中状态。

1. 选择**结束**。

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

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

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

### 运行 FreeRTOS 演示项目
<a name="infineon-run-examples"></a>

1. 使用 USB 线缆将您的 XMC4800 IoT Connectivity Kit 连接到计算机。主板有两个 microUSB 连接器。使用标记为“X101”的一个，旁边的主板上印刷字样显示“Debug”。

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 (恢复)**。

在 AWS IoT 控制台中，步骤 4-5 中的 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-cmake"></a>

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

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

**使用 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 版本。
**注意**  
我们建议您下载“8-2018-q4-major”之外的版本，因为在该版本中使用“objcopy”实用程序方面[存在错误](https://bugs.launchpad.net/gcc-arm-embedded/+bug/1810274)。

   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_iotkit -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](#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
      ```

      通过您与主板建立的[串行连接](#install-serial-connection)应该可以看到应用程序日志。

## 问题排查
<a name="infineon-troubleshooting"></a>

如果您还没有，请务必进行配置 AWS IoT 并下载 FreeRTOS，以便将您的设备连接到云端。 AWS 有关说明，请参阅[初始步骤](freertos-prereqs.md)：

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