Infineon XMC4800 IoT Connectivity Kit 入门 - FreeRTOS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Infineon XMC4800 IoT Connectivity Kit 入门

重要

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

本教程提供有关 Infineon XMC4800 IoT 连接工具包入门的说明。如果您没有 Infineon XMC4800 IoT 连接工具包,请访问 Amazon 合作伙伴设备目录来从从我们的合作伙伴购买一个。

如果您要建立与主板的串行连接来查看日志记录和调试信息,则除了 XMC4800 IoT Connectivity Kit 之外,还需要 3.3V USB/串口转换器。CP2104 是一种常见的 USB/串口转换器,广泛用于各种主板,例如 Adafruit 的 CP2104 Friend

在开始之前,您必须配置 Amazon IoT 和 FreeRTOS 下载以将您的设备连接到 Amazon 云。有关说明,请参阅初始步骤:在本教程中,FreeRTOS 下载目录的路径称为 freertos

概述

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

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

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

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

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

设置开发环境

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

安装 DAVE

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

  2. 根据您的操作系统选择 DAVE 程序包,然后提交您的注册信息。注册到 Infineon 之后,您应收到确认电子邮件,其中包括下载 .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 Relax EtherCAT 主板的板载调试探测器通信,您需要 J-Link Software and Documentation Pack 中附带的驱动程序。您可以从 Segger 的 J-Link 软件下载页面下载 J-Link Software and Documentation Pack。

建立串行连接

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

XMC4800 演示应用程序在针脚 P0.0 和 P0.1 上使用 UART 串行连接,这些数字标注在 XMC4800 Relax EtherCAT 主板上印刷的字样中。要设置串行连接,请执行以下操作:

  1. 将标记为“RX<P0.0”的针脚连接到您的 USB/串口转换器的“TX”针脚。

  2. 将标记为“TX>P0.1”的针脚连接到您的 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 (导入)。在 Import (导入) 窗口中,展开 Infineon 文件夹,选择 DAVE Project (DAVE 项目),然后选择 Next (下一步)

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

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

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

  4. 选择完成

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

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

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

运行 FreeRTOS 演示项目

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

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

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

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

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

在 Amazon 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 演示

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

注意

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

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

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

      注意

      我们建议您下载“8-2018-q4-major”之外的版本,因为在该版本中使用“objcopy”实用程序方面存在错误

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

      重要

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

  2. 安装 CMake 和 MinGW。

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

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

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

    cmake -DVENDOR=infineon -DBOARD=xmc4800_iotkit -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

      通过您与主板建立的串行连接应该可以看到应用程序日志。

排查问题

如果尚未操作,请务必配置 Amazon IoT 和 FreeRTOS 下载文件以将您的设备连接到 Amazon 云。有关说明,请参阅初始步骤

有关 FreeRTOS 入门的常规故障排除信息,请参阅问题排查入门