Xilinx Avnet MicroZed 工业 IoT 工具包入门 - FreeRTOS

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

Xilinx Avnet MicroZed 工业 IoT 工具包入门

重要

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

该教程提供有关 Xilinx Avnet MicroZed 工业 IoT 工具包入门的说明。如果您没有 Xilinx Avnet MicroZed 工业 IoT 工具包,请访问 AWS 合作伙伴设备目录来从我们的合作伙伴购买一个。

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

概述

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

  1. 将主板连接到主机。

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

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

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

设置 MicroZed 硬件

在设置 MicroZed 硬件时,下图可能会很有用:

设置 MicroZed 主板
  1. 将计算机连接到 MicroZed 主板上的 USB-UART 端口。

  2. 将计算机连接到 MicroZed 主板上的 JTAG Access 端口。

  3. 将路由器或连接 Internet 的以太网端口连接到 MicroZed 主板上的以太网和 USB-HOST 端口。

设置开发环境

要设置 MicroZed 工具包的 FreeRTOS 配置,您必须使用 Xilinx 软件开发工具包 (XSDK)。XSDK 在 Windows 和 Linux 上受支持。

下载并安装 XSDK

要安装 Xilinx 软件,您需要一个免费的 Xilinx 账户。

下载 XSDK
  1. 转至软件开发工具包独立 WebInstall 客户端下载页面。

  2. 选择适合您的操作系统的选项。

  3. 您将定向到 Xilinx 登录页。

    如果您拥有 Xilinx 账户,请输入您的登录凭证,然后选择登录

    如果您没有账户,请选择 Create your account (创建账户)。注册后,您将收到一封电子邮件,其中包含用于激活您的 Xilinx 账户的链接。

  4. Name and Address Verification (名称和地址验证) 页面上,输入您的信息,然后选择 Next (下一步)。下载应可以开始了。

  5. 保存 Xilinx_SDK_version_os 文件。

安装 XSDK
  1. 打开 Xilinx_SDK_version_os 文件。

  2. Select Edition to Install (选择要安装的版本) 中,选择 Xilinx Software Development Kit (XSDK) (Xilinx 开发工具包 (XSDK)),然后选择 Next (下一步)

  3. 在安装向导的以下页面上,在 Installation Options (安装选项) 下,选择 Install Cable Drivers (安装电缆驱动程序),然后选择 Next (下一步)

如果您的计算机未检测到 MicroZed 的 USB-UART 连接,请手动安装 CP210x USB-to-UART Bridge VCP 驱动程序。有关说明,请参阅 Silicon Labs CP210x USB-to-UART 安装指南

有关 XSDK 的更多信息,请参阅 Xilink 网站上的 Xilinx 开发工具包入门

在云上监控 MQTT 消息

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

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

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

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

构建并运行 FreeRTOS 演示项目

在 XSDK IDE 中打开 FreeRTOS 演示

  1. 启动 XSDK IDE 并将工作区目录设置为 freertos/projects/xilinx/microzed/xsdk

  2. 关闭欢迎页面。从菜单中,选择 Project (项目),然后清除 Build Automatically (自动构建)

  3. 从菜单中,选择 File (文件),然后选择 Import (导入)

  4. Select (选择) 页面上,展开 General (常规),选择 Existing Projects into Workspace (现有项目到工作区),然后选择 Next (下一步)

  5. Import Projects (导入项目) 页面上,选择 Select root directory (选择根目录),然后输入演示项目的根目录:freertos/projects/xilinx/microzed/xsdk/aws_demos要浏览目录,请选择 Browse (浏览)

    在指定一个根目录后,该目录中的项目将显示在 Import Projects (导入项目) 页面上。默认情况下,将选择所有可用项目。

    注意

    如果 Import Projects (导入项目) 页面顶部显示一条警告(“Some projects cannot be imported because they already exist in the workspace (由于一些项目已在工作区中存在,因此无法导入这些项目)。”),您可以忽略它。

  6. 选定所有项目后,选择 Finish (完成)

  7. 如果在项目窗格中看不到 aws_bspfsblMicroZed_hw_platform_0 项目,请从 #3 开始重复上述步骤(但根目录设置为 freertos/vendors/xilinx),然后导入 aws_bspfsblMicroZed_hw_platform_0

  8. 从文件菜单中,选择 Window (窗口),然后选择 Preferences (首选项)

  9. 在导航窗格中,展开 Run/Debug (运行/调试),选择 String Substitution (字符串替换项),然后选择 New (新建)

  10. New String Substitution Variable (新字符串替换变量) 中,对于 Name (名称),输入 AFR_ROOT。对于 Value (值),输入 freertos/projects/xilinx/microzed/xsdk/aws_demos 的根路径。选择 OK (确定),然后选择 OK (确定) 以保存变量并关闭 Preferences (首选项)

构建 FreeRTOS 演示项目

  1. 在 XSDK IDE 中,从菜单中选择 Project (项目),然后选择 Clean (清理)

  2. Clean (清理) 中,将选项保留其默认值,然后选择 OK (确定)。XSDK 将清理和构建所有项目,然后生成 .elf 文件。

    注意

    要构建所有项目而不进行清理,请选择 Project (项目),然后选择 Build All (全部构建)

    要构建单个项目,请选择要构建的项目,选择 Project (项目),然后选择 Build Project (构建项目)

为 FreeRTOS 演示项目生成启动映像

  1. 在 XSDK IDE 中,右键单击 aws_demos,然后选择 Create Boot Image (创建启动映像)

  2. Create Boot Image (创建启动映像) 中,选择 Create new BIF file (创建新的 BIF 文件)

  3. Output BIF file path (输出 BIF 文件路径) 的旁边,选择 Browse (浏览),然后选择 aws_demos.bif(位于 <freertos>/vendors/xilinx/microzed/aws_demos/aws_demos.bif 中)。

  4. 选择 Add(添加)。

  5. Add new boot image partition (添加新的启动映像分区) 上,在 File path (文件路径) 的旁边,选择 Browse (浏览),然后选择 fsbl.elf(位于 vendors/xilinx/fsbl/Debug/fsbl.elf 中)。

  6. 对于 Partition type (分区类型),选择 bootloader,然后选择 OK (确定)

  7. Create Boot Image (创建启动映像) 上,选择 Create Image (创建映像)。在 Override Files (覆盖文件) 上,选择 OK (确定) 以覆盖现有 aws_demos.bif 并生成 BOOT.bin 文件(位于 projects/xilinx/microzed/xsdk/aws_demos/BOOT.bin 中)。

JTAG 调试

  1. 将您的 MicroZed 主板的启动模式跳线设置为 JTAG 启动模式。

  2. 将您的 MicroSD 卡插入位于 USB-UART 端口正下方的 MicroSD 卡槽。

    注意

    在调试之前,请确保已对 MicroSD 卡上的所有内容进行备份。

    您的主板应与下图类似:

  3. 在 XSDK IDE 中,右键单击 aws_demos,选择 Debug As (调试方式),然后选择 1 Launch on System Hardware (System Debugger) (1 在系统硬件上启动 (系统调试程序))

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

    注意

    第一次运行应用程序时,将在非易失性存储器中导入新的证书密钥对。对于后续运行,您可以先在 main.c 文件中注释 vDevModeKeyProvisioning(),然后再重新构建映像和 BOOT.bin 文件。这将阻止每次运行时将证书和密钥复制到存储中。

您可以选择从 MicroSD 卡或 QSPI 闪存启动 MicroZed 主板以运行 FreeRTOS 演示项目。有关说明,请参阅为 FreeRTOS 演示项目生成启动映像运行 FreeRTOS 演示项目

运行 FreeRTOS 演示项目

要运行 FreeRTOS 演示项目,您可以从 MicroSD 卡或 QSPI 闪存启动 MicroZed 主板。

在设置 MicroZed 主板以运行 FreeRTOS 演示项目时,请参考设置 MicroZed 硬件中的演示图。确保已将 MicroZed 主板连接到计算机。

从 MicroSD 卡启动 FreeRTOS 项目

格式化 Xilinx Avnet MicroZed 工业 IoT 工具包附带的 MicroSD 卡。

  1. BOOT.bin 文件复制到 MicroSD 卡中。

  2. 将卡插入位于 USB-UART 端口正下方的 MicroSD 卡槽。

  3. 将 MicroZed 启动模式跳线设置为 SD 启动模式:

  4. 按 RST 按钮以重置设备并开始启动应用程序。您也可以从 USB-UART 端口拔出 USB-UART 电缆,然后重新插入该电缆。

从 QSPI 闪存启动 FreeRTOS 演示项目

  1. 将您的 MicroZed 主板的启动模式跳线设置为 JTAG 启动模式。

  2. 确认您的计算机已连接到 USB-UART 和 JTAG Access 端口。绿色电源正常 LED 指示灯应亮起。

  3. 在 XSDK IDE 中,从菜单中选择 Xilinx,然后选择 Program Flash (对闪存编程)

  4. Program Flash Memory (对闪存编程) 中,应自动填充硬件平台。对于 Connection (连接),选择 MicroZed 硬件服务器以将主板连接到主机。

    注意

    如果您使用的是 Xilinx Smart Lync JTAG 电缆,则必须在 XSDK IDE 中创建硬件服务器。选择 New (新建),然后定义您的服务器。

  5. Image File (映像文件) 中,输入 BOOT.bin 映像文件的目录路径。选择 Browse (浏览) 以改为浏览文件。

  6. Offset (偏移量) 中,输入 0x0

  7. FSBL File (FSBL 文件) 中,输入 fsbl.elf 文件的目录路径。选择 Browse (浏览) 以改为浏览文件。

  8. 选择 Program (编程) 以对主板编程。

  9. 在 QSPI 编程完成后,拔掉 USB-UART 电缆以使主板断电。

  10. 将您的 MicroZed 主板的启动模式跳线设置为 QSPI 启动模式:

  11. 将卡插入位于 USB-UART 端口正下方的 MicroSD 卡槽。

    注意

    确保已对 MicroSD 卡上的所有内容进行备份。

  12. 按 RST 按钮以重置设备并开始启动应用程序。您也可以从 USB-UART 端口拔出 USB-UART 电缆,然后重新插入该电缆。

故障排除

如果您遇到与错误路径相关的构建错误,请尝试清理并重新构建项目,如构建 FreeRTOS 演示项目中所述。

如果您使用的是 Windows,请确保在 Windows XSDK IDE 中设置字符串替代变量时使用正斜杠。

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