Windows 设备模拟器入门 - FreeRTOS

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

Windows 设备模拟器入门

本教程提供有关 FreeRTOS Windows 设备模拟器入门的说明。

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

FreeRTOS 以 zip 文件格式发布,包含您所指定平台的 FreeRTOS 库和示例应用程序。要在 Windows 计算机上运行此示例,请下载移植到 Windows 上运行的库和示例。这组文件称为适用于 Windows 的 FreeRTOS 仿真器。

注意

本教程无法在 Amazon EC2 Windows 实例上成功运行。

设置开发环境

  1. 安装最新版本的 Npcap。在安装过程中选择“WinPcap API 兼容模式”。

  2. 安装 Microsoft Visual Studio

    Visual Studio 2017 和 2019 版已知可用。支持 Visual Studio 的所有版本(社区版、专业版或企业版)。

    在 IDE 之外,请安装 Desktop development with C++ (C++ 桌面开发)组件。

    安装最新的 Windows 10 开发工具包。您可以在使用 C++ 的桌面开发组件的可选部分下选择此选项。

  3. 确保您有活动的有线以太网连接。

  4. (可选)如果您想使用基于 CMake 的构建系统来构建 FreeRTOS 项目,请安装最新版本的 CMake。FreeRTOS 需要 CMake 版本 3.13 或更高版本。

在云上监控 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 (订阅主题)

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

构建并运行 FreeRTOS 演示项目

您可以使用 Visual Studio 或 CMake 构建 FreeRTOS 项目。

使用 Visual Studio IDE 构建并运行 FreeRTOS 演示项目

  1. 在 Visual Studio 中加载项目。

    在 Visual Studio 中,从 File (文件) 菜单,选择 Open (打开)。选择 File/Solution (文件/解决方案),导航到 projects/pc/windows/visual_studio/aws_demos/aws_demos.sln 文件,然后选择 Open (打开)

  2. 重新定位演示项目。

    提供的演示项目取决于 Windows 开发工具包,但未指定 Windows 开发工具包版本。默认情况下,IDE 可能会尝试使用计算机上不存在的开发工具包版本构建演示。要设置 Windows 开发工具包版本,请右键单击 aws_demos,然后选择 Retarget Projects (重新定位项目)。这将打开 Review Solution Actions (审核解决方案操作) 窗口。选择计算机上现有的一个 Windows 开发工具包版本(下拉列表中的初始值即可),然后选择确定

  3. 构建并运行项目。

    生成菜单,选择生成解决方案,确保解决方案已生成且没有错误或警告。选择 Debug (调试)Start Debugging (开始调试) 以运行项目。在首次运行时,您必须选择一个网络接口

使用 CMake 构建并运行 FreeRTOS 演示项目

我们建议您使用 CMake GUI 而不是 CMake 命令行工具为 Windows 模拟器构建演示项目。

安装 CMake 之后,打开 CMake GUI。在 Windows 上,您可在“开始”菜单的 CMakeCMake (cmake-gui) 下找到它。

  1. 设置 FreeRTOS 源代码目录。

    在 GUI 中,将源代码位于什么位置设置为 FreeRTOS 源代码目录 (freertos)。

    在何处构建二进制文件设置为 freertos/build

  2. 配置 CMake 项目。

    在 CMake GUI 中,选择 Add Entry (添加条目),在 Add Cache Entry (添加缓存条目) 窗口中,设置以下值:

    名称

    AFR_BOARD

    类型

    STRING

    Value

    pc.windows

    描述

    (可选)

  3. 选择 Configure(配置)。如果 CMake 提示您创建构建目录,请选择 Yes (是),然后在 Specify the generator for this project (指定此项目的生成器) 下选择生成器。我们建议使用 Visual Studio 作为生成器,不过也支持 Ninja。(请注意,当使用 Visual Studio 2019 时,平台应设置为 Win32,而不是其默认设置。) 保留其他生成器选项不变,然后选择完成

  4. 生成并打开 CMake 项目。

    配置了项目之后,CMake GUI 显示对生成的项目可用的全部选项。对于本教程中的使用,您可以保留选项的默认值。

    选择 Generate (生成) 以创建 Visual Studio 解决方案,然后选择 Open Project (打开项目) 以在 Visual Studio 中打开项目。

    在 Visual Studio 中,右键单击 aws_demos 项目并选择 Set as StartUp Project (设置为启动项目)。这使您能够构建并运行项目。在首次运行时,您必须选择一个网络接口

有关将 CMake 与 FreeRTOS 配合使用的更多信息,请参阅将 CMake 与 FreeRTOS 配合使用

配置网络接口

首次运行演示项目时,您必须选择要使用的网络接口。程序会计算您的网络接口数。找到您的有线连接以太网接口号。输出应该如下所示:

0 0 [None] FreeRTOS_IPInit 1 0 [None] vTaskStartScheduler 1. rpcap://\Device\NPF_{AD01B877-A0C1-4F33-8256-EE1F4480B70D} (Network adapter 'Intel(R) Ethernet Connection (4) I219-LM' on local host) 2. rpcap://\Device\NPF_{337F7AF9-2520-4667-8EFF-2B575A98B580} (Network adapter 'Microsoft' on local host) The interface that will be opened is set by "configNETWORK_INTERFACE_TO_USE", which should be defined in FreeRTOSConfig.h ERROR: configNETWORK_INTERFACE_TO_USE is set to 0, which is an invalid value. Please set configNETWORK_INTERFACE_TO_USE to one of the interface numbers listed above, then re-compile and re-start the application. Only Ethernet (as opposed to Wi-Fi) interfaces are supported.

确定了有线连接的以太网接口的编号之后,关闭应用程序窗口。在前述示例中,使用的编号是 1

打开 FreeRTOSConfig.h 并将 configNETWORK_INTERFACE_TO_USE 设置为与有线连接网络接口对应的编号。

重要

仅支持以太网接口。不支持 Wi-Fi。

故障排除

Windows 常见问题故障排查

尝试使用 Visual Studio 构建演示项目时,您可能会遇到以下错误:

Error "The Windows SDK version X.Y was not found" when building the provided Visual Studio solution.

项目必须定位到计算机上存在的 Windows 开发工具包版本。

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