

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

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

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

在开始之前，您必须进行配置 AWS IoT 并下载 FreeRTOS 才能将您的设备连接到云端。 AWS 有关说明，请参阅[初始步骤](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 演示项目之前，您可以在控制台中 AWS IoT 设置 MQTT 客户端，以监控您的设备发送到云端的消息。 AWS 

**使用 MQTT 客户端订阅 M AWS IoT QTT 主题**

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="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)。

### 使用以下命令构建和运行 FreeRTOS 演示项目 CMake
<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 中，选择 “**添加条目**”，然后在 “**添加缓存条目**” 窗口中设置以下值：  
**Name**  
AFR\$1BOARD  
**Type**  
string  
**值**  
pc.windows  
**说明**  
（可选）

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

1. 生成并打开 CMake 项目。

   配置完项目后， CMake GUI 会显示生成的项目的所有可用选项。对于本教程中的使用，您可以保留选项的默认值。

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

   在 Visual Studio 中，右键单击该`aws_demos`项目，然后选择 “**设置为 StartUp 项目**”。这使您能够构建并运行项目。在首次运行时，您必须[选择一个网络接口](#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)。