

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

# Windows 设备模拟器入门
<a name="getting_started_windows"></a>

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

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

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

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

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

1. 安装最新版本的 [Npcap](https://npcap.com/)。在安装过程中选择“WinPcap API 兼容模式”。

1. 安装 [Microsoft Visual Studio](https://www.visualstudio.com/downloads)。

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

   在 IDE 之外，请安装 **Desktop development with C\$1\$1 (C\$1\$1 桌面开发)**组件。

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

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

1. （可选）如果您想使用基于 CMake 的构建系统来构建 FreeRTOS 项目，请安装最新版本的 [CMake](https://cmake.org/download/)。FreeRTOS 需要 CMake 版本 3.13 或更高版本。

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

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

**使用 Amazon IoT MQTT 客户端订阅 MQTT 主题**

1. 登录 [Amazon IoT 控制台](https://console.amazonaws.cn/iotv2/)。

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

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

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

## 构建并运行 FreeRTOS 演示项目
<a name="win-build-and-run-example"></a>

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

### 使用 Visual Studio IDE 构建并运行 FreeRTOS 演示项目
<a name="win-build-and-run-vs"></a>

1. 在 Visual Studio 中加载项目。

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

1. 重新定位演示项目。

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

1. 构建并运行项目。

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

### 使用 CMake 构建并运行 FreeRTOS 演示项目
<a name="win-build-and-run-cmake"></a>

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

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

1. 设置 FreeRTOS 源代码目录。

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

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

1. 配置 CMake 项目。

   在 CMake GUI 中，选择 **Add Entry (添加条目)**，在 **Add Cache Entry (添加缓存条目)** 窗口中，设置以下值：  
**名称**  
AFR\$1BOARD  
**类型**  
STRING  
**值**  
pc.windows  
**描述**  
（可选）

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

1. 生成并打开 CMake 项目。

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

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

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

有关将 CMake 与 FreeRTOS 配合使用的更多信息，请参阅[CMake 与 FreeRTOS 一起使用](getting-started-cmake.md)。

### 配置网络接口
<a name="win-network-interface"></a>

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

```
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。

## 故障排除
<a name="windows-troubleshooting"></a>

### Windows 常见问题故障排查
<a name="windows-troubleshooting-common"></a>

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

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

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

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