

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

# Infineon XMC4800 IoT Connectivity Kit 入門
<a name="getting_started_infineon"></a>

**重要**  <a name="deprecation-message"></a>
此參考整合託管在已棄用的 Amazon-FreeRTOS 儲存庫上。我們建議您在建立新專案時從[這裡開始](freertos-getting-started-modular.md)。如果您已經有以現在已棄用的 Amazon-FreeRTOS 儲存庫為基礎的現有 FreeRTOS 專案，請參閱 [Amazon-FreeRTOS Github 儲存庫遷移指南](github-repo-migration.md)。 FreeRTOS 

本教學課程提供 Infineon XMC4800 IoT 連線套件入門指示。如果您沒有 Infineon XMC4800 IoT 連線套件，請造訪 AWSPartner Device Catalog 向[我們的合作夥伴](https://devices.amazonaws.com/detail/a3G0L00000AANsbUAH/XMC4800-IoT-Amazon-FreeRTOS-Connectivity-Kit-WiFi)購買。

如果您想要開啟電路板的序列連接以檢視記錄和除錯資訊，則除了 XMC4800 IoT 連線套件以外，您還需要 3.3V USB/Serial 轉換器。CP2104 是一種常見的 USB/Serial 轉換器，各種電路板均有提供，例如 Adafruit 的 [CP2104 Friend](https://www.adafruit.com/product/3309)。

開始之前，您必須設定 AWS IoT和 FreeRTOS 下載，將您的裝置連線至 AWS雲端。如需說明，請參閱 [首要步驟](freertos-prereqs.md)。在本教學課程中，FreeRTOS 下載目錄的路徑稱為 `freertos`。

## 概觀
<a name="w2aac31b9b7c25c27c13"></a>

本教學課程包含以下入門步驟的指示：

1. 在主機機器上安裝軟體以對微控制器主機板的內嵌應用程式進行開發和除錯。

1. 將 FreeRTOS 示範應用程式跨編譯至二進位映像。

1. 將應用程式二進位映像載入主機板，然後執行應用程式。

1. 透過序列連線與在開發板上執行的應用程式互動，以便進行監控和除錯。

## 設定開發環境
<a name="infineon-setup-env"></a>

FreeRTOS 使用 Infineon 的 DAVE 開發環境來程式設計 XMC4800。開始之前，您需要下載並安裝 DAVE 和一些 J-Link 驅動程式，以與內建除錯器通訊。

### 安裝 DAVE
<a name="install-dave"></a>

1. 前往 Infineon 的 [DAVE software download](https://infineoncommunity.com/dave-download_ID645) 頁面。

1. 選擇適用於您作業系統的 DAVE 套件，並提交您的註冊資訊。註冊 Infineon 之後，您應該會收到一封確認電子郵件，其中包含 .zip 檔案的下載連結。

1. 下載 DAVE 套件 .zip 檔案 (`DAVE_version_os_date.zip`)，並解壓縮至您要安裝 DAVE 的位置 (例如 `C:\DAVE4`)。
**注意**  
部分 Windows 使用者曾回報使用 Windows 檔案總管解壓縮檔案時會發生問題。我們建議您使用第三方程式，例如 7-Zip。

1. 若要啟動 DAVE，請執行解壓縮 `DAVE_version_os_date.zip` 資料夾中的可執行檔。

如需詳細資訊，請參閱 [DAVE Quick Start Guide](https://www.infineon.com/dgdl/Infineon-DAVE_Quick_Start-GS-v02_00-EN.pdf?fileId=5546d4624cb7f111014d059f7b8c712d)。

### 安裝 Segger J-Link 驅動程式
<a name="install-jlink"></a>

若要與 XMC4800 Relax EtherCAT 電路板的內建除錯探查通訊，您需要 J-Link 軟體和文件套件中隨附的驅動程式。您可以從 Segger 的 [J-Link software download](https://www.segger.com/downloads/jlink/#J-LinkSoftwareAndDocumentationPack) 頁面下載 J-Link 軟體和文件套件。

## 建立序列連線
<a name="install-serial-connection"></a>

設定序列連接是選用的步驟，但仍建議您執行。序列連接可讓電路板使用可供您在開發機器上檢視的格式，傳送記錄和除錯資訊。

XMC4800 示範應用程式可在 P0.0 和 P0.1 pin 上使用 UART 序列連接，這兩個 pin 在 XMC4800 Relax EtherCAT 電路板的絲印層上有標記。設定序列連接：

1. 將標示 "RX<P0.0" 的 pin 接到您 USB/Serial 轉換器的 "TX" pin。

1. 將標示 "TX>P0.1" 的 pin 接到您 USB/Serial 轉換器的 "RX" pin。

1. 將序列轉換器的接地 pin 接到電路板上其中一個標示 "GND" 的 pin。裝置必須共用共同的接地線。

電源是由 USB 除錯連接埠提供，因此請勿將序列界面卡的正電壓 pin 接到電路板。

**注意**  
有些序列纜線使用 5V 訊號層級。XMC4800 電路板和 Wi-Fi Click 模組需要 3.3V。請不要使用電路板的 IOREF 跳接器，來將電路板的訊號變更為 5V。

 連接纜線時，您可以在終端機模擬器 (例如 [GNU Screen](https://www.gnu.org/software/screen/)) 上開啟序列連接。傳輸速率預設為 115200，含 8 個資料位元、無同位與 1 個停止位元。

## 監控雲端的 MQTT 訊息
<a name="infineon-monitor-mqtt"></a>

在執行 FreeRTOS 示範之前，您可以在 AWS IoT主控台中設定 MQTT 用戶端，以監控裝置傳送至 AWS雲端的訊息。

**使用 MQTT 用戶端訂閱 AWS IoTMQTT 主題**

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

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

1. 在**訂閱主題**中輸入 ***your-thing-name*/example/topic**，然後選擇**訂閱主題**。

當示範專案在您的裝置上成功執行時，您會看到「Hello World！」 多次傳送到您訂閱的主題。

## 建置並執行 FreeRTOS 示範專案
<a name="infineon-build-and-run-example"></a>

### 將 FreeRTOS 示範匯入 DAVE
<a name="infineon-freertos-import-project"></a><a name="infineon-load-project"></a>

1. 啟動 DAVE。

1. 在 DAVE 中，選擇 **File (檔案)**、**Import (匯入)**。在 **Import (匯入)** 視窗中，展開 **Infineon** 資料夾，選擇 **DAVE Project (DAVE 專案)**，然後選擇 **Next (下一步)**。

1. 在 **Import DAVE Projects (匯入 DAVE 專案)** 視窗中，選擇 **Select Root Directory (選取根目錄)** 和 **Browse (瀏覽)**，然後選擇 XMC4800 示範專案。

   在您解壓縮 FreeRTOS 下載的目錄中，示範專案位於 。 `projects/infineon/xmc4800_iotkit/dave4/aws_demos`

   確定取消核取 **Copy Projects Into Workspace (複製專案至工作區)**。

1. 選擇**完成**。

   `aws_demos` 專案應會匯入您的工作空間並啟用。

1. 在 **Project (專案)** 功能表中，選擇 **Build Active Project (建置作用中的專案)**。

   確認專案建置時未發生錯誤。

### 執行 FreeRTOS 示範專案
<a name="infineon-run-examples"></a>

1. 使用 USB 纜線將 XMC4800 IoT 連線套件接到您的電腦。電路板有兩個 microUSB 連接器。請使用標示 "X101" 的連接器，該連接器旁的電路板絲印層上顯示 Debug。

1. 從 **Project (專案)** 功能表中，選擇 **Rebuild Active Project (重建作用中的專案)** 以重建 `aws_demos`，並確認您的組態變更生效。

1. 從 **Project Explorer (專案瀏覽器)** 中，以滑鼠右鍵按一下 `aws_demos`，選擇 **Debug As (除錯工具)**，然後選擇 **DAVE C/C\$1\$1 Application (DAVE C/C\$1\$1 應用程式)**。

1. 按兩下 **GDB SEGGER J-Link Debugging (GDB SEGGER J-Link 除錯)** 以建立除錯確認。選擇 **Debug (除錯)**。

1. 當除錯器停在 `main()` 中斷點時，請從 **Run (執行)** 功能表，選擇 **Resume (繼續)**。

在 AWS IoT主控台中，步驟 4-5 的 MQTT 用戶端應該會顯示裝置傳送的 MQTT 訊息。如果您使用序列連接，您會看到類似如下的 UART 輸出：

```
0 0 [Tmr Svc] Starting key provisioning...
1 1 [Tmr Svc] Write root certificate...
2 4 [Tmr Svc] Write device private key...
3 82 [Tmr Svc] Write device certificate...
4 86 [Tmr Svc] Key provisioning done...
5 291 [Tmr Svc] Wi-Fi module initialized. Connecting to AP...
.6 8046 [Tmr Svc] Wi-Fi Connected to AP. Creating tasks which use network...
7 8058 [Tmr Svc] IP Address acquired [IP Address]
8 8058 [Tmr Svc] Creating MQTT Echo Task...
9 8059 [MQTTEcho] MQTT echo attempting to connect to [MQTT Broker].
...10 23010 [MQTTEcho] MQTT echo connected.
11 23010 [MQTTEcho] MQTT echo test echoing task created.
.12 26011 [MQTTEcho] MQTT Echo demo subscribed to iotdemo/#
13 29012 [MQTTEcho] Echo successfully published 'Hello World 0'
.14 32096 [Echoing] Message returned with ACK: 'Hello World 0 ACK'
.15 37013 [MQTTEcho] Echo successfully published 'Hello World 1'
16 40080 [Echoing] Message returned with ACK: 'Hello World 1 ACK'
.17 45014 [MQTTEcho] Echo successfully published 'Hello World 2'
.18 48091 [Echoing] Message returned with ACK: 'Hello World 2 ACK'
.19 53015 [MQTTEcho] Echo successfully published 'Hello World 3'
.20 56087 [Echoing] Message returned with ACK: 'Hello World 3 ACK'
.21 61016 [MQTTEcho] Echo successfully published 'Hello World 4'
22 64083 [Echoing] Message returned with ACK: 'Hello World 4 ACK'
.23 69017 [MQTTEcho] Echo successfully published 'Hello World 5'
.24 72091 [Echoing] Message returned with ACK: 'Hello World 5 ACK'
.25 77018 [MQTTEcho] Echo successfully published 'Hello World 6'
26 80085 [Echoing] Message returned with ACK: 'Hello World 6 ACK'
.27 85019 [MQTTEcho] Echo successfully published 'Hello World 7'
.28 88086 [Echoing] Message returned with ACK: 'Hello World 7 ACK'
.29 93020 [MQTTEcho] Echo successfully published 'Hello World 8'
.30 96088 [Echoing] Message returned with ACK: 'Hello World 8 ACK'
.31 101021 [MQTTEcho] Echo successfully published 'Hello World 9'
32 104102 [Echoing] Message returned with ACK: 'Hello World 9 ACK'
.33 109022 [MQTTEcho] Echo successfully published 'Hello World 10'
.34 112047 [Echoing] Message returned with ACK: 'Hello World 10 ACK'
.35 117023 [MQTTEcho] Echo successfully published 'Hello World 11'
36 120089 [Echoing] Message returned with ACK: 'Hello World 11 ACK'
.37 122068 [MQTTEcho] MQTT echo demo finished.
38 122068 [MQTTEcho] ----Demo finished----
```

### 使用 CMake 建置 FreeRTOS 示範
<a name="infineon-cmake"></a>

如果您不想使用 IDE 進行 FreeRTOS 開發，您也可以使用 CMake 來建置和執行您使用第三方程式碼編輯器和偵錯工具開發的示範應用程式或應用程式。

**注意**  
此節說明在 Windows 上透過 MingW 作為原生建置系統以使用 CMake。如需有關搭配其他作業系統和選項以使用 CMake 的詳細資訊，請參閱 [搭配 FreeRTOS 使用 CMake](getting-started-cmake.md)。([MinGW ](https://sourceforge.net/projects/mingw-w64/files/) 是本機 Microsoft Windows 應用程式的簡約開發環境。)

**使用 CMake 建置 FreeRTOS 示範**

1. 設定 GNU Arm 內嵌式工具鏈。

   1. 從 [Arm 內嵌式工具鏈下載頁面](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads)下載 Windows 版本的工具鏈。
**注意**  
我們建議您下載「8-2018-q4-major」以外的版本，因為該版本發生「objcopy」公用程式的[錯誤回報](https://bugs.launchpad.net/gcc-arm-embedded/+bug/1810274)。

   1. 開啟下載的工具鏈安裝程式，並依照安裝精靈的指示安裝工具鏈。
**重要**  
在安裝精靈的最終頁面中，選擇 **Add path to environment variable (新增路徑至環境變數)** 以新增工具鏈路徑到系統路徑環境變數。

1. 安裝 CMake 和 MingW。

   如需詳細說明，請參閱 [CMake 先決條件](getting-started-cmake.md#building-cmake-prereqs)。

1. 建立資料夾以包含產生的建置檔案 (*build-folder*)。

1. 將目錄變更為 FreeRTOS 下載目錄 (`freertos`)，並使用下列命令產生建置檔案：

   ```
   cmake -DVENDOR=infineon -DBOARD=xmc4800_iotkit -DCOMPILER=arm-gcc -S . -B build-folder -G "MinGW Makefiles" -DAFR_ENABLE_TESTS=0
   ```

1. 將目錄變更到建置目錄 (*build-folder*)，然後使用下列命令來建置二進位：

   ```
   cmake --build . --parallel 8
   ```

   此命令會建置輸出二進位 `aws_demos.hex` 到建置目錄。

1. 使用 [JLINK](#install-jlink) 刷新並執行映像。

   1. 使用下列命令以從建置目錄 (*build-folder*) 建立刷新指令碼：

      ```
      echo loadfile aws_demos.hex > flash.jlink
      ```

      ```
      echo r >> flash.jlink
      ```

      ```
      echo g >> flash.jlink
      ```

      ```
      echo q >> flash.jlink
      ```

   1. 使用 JLNIK 可執行檔來刷新映像。

      ```
      JLINK_PATH\JLink.exe  -device XMC4800-2048 -if SWD -speed auto -CommanderScript flash.jlink
      ```

      您應該可透過使用面板建立的[序列連線](#install-serial-connection)看到應用程式日誌。

## 疑難排解
<a name="infineon-troubleshooting"></a>

如果您尚未進行，請務必設定 AWS IoT和 FreeRTOS 下載，將您的裝置連線至 AWS雲端。如需說明，請參閱 [首要步驟](freertos-prereqs.md)。

如需 FreeRTOS 入門的一般疑難排解資訊，請參閱 [故障診斷入門](gsg-troubleshooting.md)。