

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 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 版本 (Community、Professional 或 Enterprise)。

   除 IDE 外，安裝**使用 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 用戶端訂閱 AWS IoT MQTT 主題**

1. 登入 [AWS IoT 主控台](https://console.aws.amazon.com/iotv2/)。

1. 在導覽窗格中，選擇**測試**，然後選擇 **MQTT 測試用戶端**以開啟 MQTT 用戶端。

1. 在**訂閱主題**中輸入 ***your-thing-name*/example/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 SDK 版本 （下拉式清單中的初始值沒有問題），然後選擇**確定**。

1. 建置並執行專案。

   從 **Build (建置)** 功能表中，選擇 **Build Solution (建置解決方案)**，並確認解決方案建置時未發生錯誤或警告。選擇 **Debug (偵錯)**、**Start Debugging (開始偵錯)** 以執行專案。在第一次執行時，您必須[選取網路界面](#win-network-interface)。

### 使用 CMake 建置和執行 FreeRTOS 示範專案
<a name="win-build-and-run-cmake"></a>

我們建議您使用 CMake GUI 而非 CMake 命令列工具來建置 Windows Simulator 的示範專案。

在您安裝 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  
**Type**  
STRING  
**Value**  
pc.windows  
**Description**  
(選用)

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

如需搭配 FreeRTOS 使用 CMake 的詳細資訊，請參閱 [搭配 FreeRTOS 使用 CMake](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)。