

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

# MW32x AWS IoT 入門套件入門
<a name="getting_started_mw32x"></a>

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

 AWS IoT 入門套件是以 NXP 的最新整合式 Cortex M4 微控制器 88MW320/88MW322 為基礎的開發套件，可在單一微控制器晶片上整合 802.11b/g/n Wi-Fi。開發套件已通過 FCC 認證。如需詳細資訊，請參閱[AWS 合作夥伴裝置目錄](https://devices.amazonaws.com/detail/a3G0h000000OaRnEAK/MW320-AWS-IoT-Starter-Kit)，向我們的合作夥伴購買。88MW320/88MW322 模組也經過 FCC 認證，可用於自訂和大量銷售。

本入門指南說明如何在主機電腦上將應用程式與 SDK 交叉編譯，然後使用 SDK 隨附的工具將產生的二進位檔案載入主機板。當應用程式開始在主機板上執行時，您可以從主機電腦上的序列主控台進行偵錯或與其互動。

Ubuntu 16.04 是支援開發和偵錯的主機平台。您可能可以使用其他平台，但並未正式支援這些平台。您必須擁有在主機平台上安裝軟體的許可。建置 SDK 所需的下列外部工具：
+ Ubuntu 16.04 主機平台
+ ARM 工具鏈版本 4\_9\_2015q3
+ Eclipse 4.9.0 IDE

需要 ARM 工具鏈才能跨編譯您的應用程式和 SDK。開發套件利用最新版本的工具鏈來最佳化影像佔用空間，並將更多功能納入較少的空間。本指南假設您使用的是工具鏈的 4\_9\_2015q3 版。不建議使用較舊版本的工具鏈。開發套件已使用 Wireless Microcontroller 示範專案韌體預先刷新。

**Topics**
+ [設定您的硬體](#gsg-mw32x-hardware)
+ [設定開發環境](#gsg-mw32x-dev-env)
+ [建置並執行 FreeRTOS 示範專案](#gsg-mw32x-build-and-run)
+ [除錯](#gsg-mw32x-debugging)
+ [疑難排解](#gsg-mw32x-troubleshooting)

## 設定您的硬體
<a name="gsg-mw32x-hardware"></a>

使用迷你 USB 轉 USB 纜線，將 MW32x 主機板連接至您的筆記型電腦。將 mini-USB 纜線連接到主機板上唯一的 mini-USB 連接器。您不需要變更跳線器。

如果主機板連接到筆記型電腦或桌上型電腦，則不需要外部電源。

此 USB 連線提供下列項目：
+ 主控台存取主機板。虛擬 tty/com 連接埠已向可用來存取主控台的開發主機註冊。
+ JTAG 對電路板的存取。這可用於將韌體映像載入或卸載至主機板的 RAM 或快閃記憶體，或用於除錯。

## 設定開發環境
<a name="gsg-mw32x-dev-env"></a>

基於開發目的，最低需求是 ARM 工具鏈和與 SDK 綁定的工具。下列各節提供 ARM 工具鏈設定的詳細資訊。

### GNU 工具鏈
<a name="gsg-mw32x-dev-env-gnu"></a>

開發套件正式支援 GCC Compiler 工具鏈。GNU ARM 的跨編譯工具鏈可在 [GNU Arm Embedded Toolchain 4.9-2015-q3-update](https://launchpad.net/gcc-arm-embedded/4.9/4.9-2015-q3-update) 中取得。

建置系統預設為使用 GNU 工具鏈。Makefiles 假設 GNU 編譯器工具鏈二進位檔可在使用者的 PATH 上使用，並且可以從 Makefiles 叫用。Makefiles 也假設 GNU 工具鏈二進位檔的檔案名稱字首為 `arm-none-eabi-`。

GCC 工具鏈可與 GDB 搭配使用，以使用 OpenOCD （與 SDK 綁定） 進行偵錯。這提供與 JTAG 互動的軟體。

我們建議使用 gcc-arm-embedded 工具鏈的 4\_9\_2015q3 版。

### Linux 工具鏈設定程序
<a name="gsg-mw32x-dev-env-linux"></a>

請依照下列步驟在 Linux 中設定 GCC 工具鏈。

1. 下載 [GNU Arm Embedded Toolchain 4.9-2015-q3-update 提供的工具鏈](https://launchpad.net/gcc-arm-embedded/4.9/4.9-2015-q3-update) tarball。檔案為 `gcc-arm-none-eabi-4_9-2015q3-20150921-linux.tar.bz2`。

1. 將檔案複製到您選擇的目錄。請確定目錄名稱中沒有空格。

1. 使用下列命令來解壓縮 檔案。

   ```
   tar –vxf {{filename}}
   ```

1. 將已安裝工具鏈的路徑新增至系統 PATH。例如，在位於 `/home/{{user-name}}`目錄中`.profile`的檔案結尾附加以下行。

   ```
   PATH=$PATH:{{path to gcc-arm-none-eabit-4_9_2015_q3/bin}}
   ```

**注意**  
較新的 Ubuntu 發行版本可能隨附 GCC Cross Compiler 的 Debian 版本。若是如此，您必須移除原生的跨編譯器，並遵循上述設定程序。

### 使用 Linux 開發主機
<a name="gsg-mw32x-dev-env-linux-host"></a>

您可以使用任何現代 Linux 桌面發行版本，例如 Ubuntu 或 Fedora。不過，我們建議您升級至最新版本。下列步驟已經過驗證，可在 Ubuntu 16.04 上運作，並假設您正在使用該版本。

#### 安裝套件
<a name="gsg-mw32x-dev-env-linux-host-pkgs"></a>

SDK 包含指令碼，可在新設定 Linux 機器上快速設定您的開發環境。指令碼會嘗試自動偵測機器類型並安裝適當的軟體，包括 C 程式庫、USB 程式庫、FTDI 程式庫、ncurses、python 和 latex。在本節中，一般目錄名稱`{{amzsdk_bundle-x.y.z}}`會指出 AWS SDK 根目錄。實際目錄名稱可能不同。您必須具有根權限。
+ 導覽至 `{{amzsdk_bundle-x.y.z/}}`目錄並執行此命令。

  ```
  ./lib/third_party/mcu_vendor/marvell/WMSDK/mw320/sdk/tools/bin/installpkgs.sh
  ```

#### 避免 sudo
<a name="gsg-mw32x-dev-env-linux-host-sudo"></a>

在本指南中， `flashprog`操作會使用`flashprog.py`指令碼來刷新主機板的 SSD，如下所述。同樣地， `ramload`操作會使用`ramload.py`指令碼，將韌體映像直接從主機複製到微型控制器的 RAM，而不會刷新 SSD。

您可以設定 Linux 開發主機來執行 `flashprog`和 `ramload`操作，而不需要每次都使用 `sudo`命令。若要進行這項動作，請執行以下命令。

```
./lib/third_party/mcu_vendor/marvell/WMSDK/mw320/sdk/tools/bin/perm_fix.sh
```

**注意**  
您必須以這種方式設定 Linux 開發主機許可，以確保順暢的 Eclipse IDE 體驗。

#### 設定序列主控台
<a name="gsg-mw32x-dev-env-linux-host-serial"></a>

將 USB 纜線插入 Linux 主機 USB 插槽。這會觸發裝置的偵測。您應該會在 `/var/log/messages` 檔案中或在執行 `dmesg`命令後看到類似下列的訊息。

```
Jan 6 20:00:51 localhost kernel: usb 4-2: new full speed USB device using uhci_hcd and address 127
Jan 6 20:00:51 localhost kernel: usb 4-2: configuration #1 chosen from 1 choice
Jan 6 20:00:51 localhost kernel: ftdi_sio 4-2:1.0: FTDI USB Serial Device converter detected
Jan 6 20:00:51 localhost kernel: ftdi_sio: Detected FT2232C
Jan 6 20:00:51 localhost kernel: usb 4-2: FTDI USB Serial Device converter now attached to ttyUSB0
Jan 6 20:00:51 localhost kernel: ftdi_sio 4-2:1.1: FTDI USB Serial Device converter detected
Jan 6 20:00:51 localhost kernel: ftdi_sio: Detected FT2232C
Jan 6 20:00:51 localhost kernel: usb 4-2: FTDI USB Serial Device converter now attached to ttyUSB1
```

確認已建立兩個 ttyUSB 裝置。第二個 ttyUSB 是序列主控台。在上述範例中，此名稱名為 "ttyUSB1"。

在本指南中，我們使用 minicom 來查看序列主控台輸出。您也可以使用其他序列程式，例如 `putty`。執行下列命令，以在設定模式中執行 minicom。

```
minicom –s
```

在 minicom 中，導覽至**序列連接埠設定**並擷取下列設定。

```
| A - Serial Device : /dev/ttyUSB1
| B – Lockfile Location : /var/lock
| C - Callin Program :
| D - Callout Program :
| E - Bps/Par/Bits : 115200 8N1
| F – Hardware Flow Control : No
| G – Software Flow Control : No
```

您可以在 Minicom 中儲存這些設定以供日後使用。Minicom 視窗現在會顯示來自序列主控台的訊息。

選擇序列主控台視窗，然後按 **Enter** 鍵。這會在畫面上顯示雜湊 (\#)。

**注意**  
開發板包含 FTDI 晶片裝置。FTDI 裝置會公開主機的兩個 USB 介面。第一個界面與 MCU 的 JTAG 功能相關聯，第二個界面與 MCU 的實體 UARTx 連接埠相關聯。

#### 安裝 OpenOCD
<a name="gsg-mw32x-dev-env-linux-host-openocd"></a>

OpenOCD 是為內嵌目標裝置提供偵錯、系統內程式設計和邊界掃描測試的軟體。

需有 OpenOCD 0.9 版。Eclipse 功能也需要此功能。如果您的 Linux 主機上安裝了舊版，例如 0.7 版，請使用您目前使用的 Linux 發行版本適用的命令來移除該儲存庫。

執行標準 Linux 命令來安裝 OpenOCD，

```
apt-get install openocd
```

如果上述命令未安裝 0.9 版或更新版本，請使用下列程序來下載和編譯 openocd 原始程式碼。

**安裝 OpenOCD**

1. 執行下列命令來安裝 libusb-1.0。

   ```
   sudo apt-get install libusb-1.0 
   ```

1. 從 [http://openocd.org/](http://openocd.org/)：// 下載 openocd 0.9.0 原始程式碼。

1. 解壓縮 openocd 並導覽至您解壓縮它的目錄。

1. 使用下列命令設定 openocd。

   ```
   ./configure --enable-ftdi --enable-jlink
   ```

1. 執行 make 公用程式以編譯 opencd。

   ```
   make install
   ```

### 設定 Eclipse
<a name="gsg-mw32x-eclipse"></a>

**注意**  
本節假設您已完成 中的步驟 [避免 sudo](#gsg-mw32x-dev-env-linux-host-sudo)

Eclipse 是應用程式開發和偵錯的偏好 IDE。它提供豐富且易於使用的 IDE 與整合偵錯支援，包括執行緒感知偵錯。本節說明支援的所有開發主機的一般 Eclipse 設定。

**設定 Eclipse**

1. 下載並安裝 Java 執行時間環境 (JRE)。

   Eclipse 要求您安裝 JRE。我們建議您先安裝此 ，但可以在安裝 Eclipse 之後安裝。JRE 版本 (32/64 位元） 必須符合 Eclipse 版本 (32/64 位元）。您可以從 Oracle 網站上的 [Java SE Runtime Environment 8 Downloads](http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html) 下載 JRE。

1. 從 [http://www.eclipse.org](http://www.eclipse.org)：// 下載並安裝「適用於 C/C\+\+ 開發人員的 Eclipse IDE」。支援 Eclipse 4.9.0 版或更新版本。安裝只需要您擷取下載的封存。您可以執行平台特定的 Eclipse 可執行檔來啟動應用程式。

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

執行 FreeRTOS 示範專案的方式有兩種：
+ 使用命令列。
+ 使用 Eclipse IDE。

本主題涵蓋這兩個選項。

**佈建中**
+ 根據您是否使用測試或示範應用程式，在下列其中一個檔案中設定佈建資料：
  + `./tests/common/include/aws_clientcredential.h` 
  + `./demos/common/include/aws_clientcredential.h` 

  例如：

  ```
  #define clientcredentialWIFI_SSID "{{Wi-Fi SSID}}"
  #define clientcredentialWIFI_PASSWORD "{{Wi-Fi password}}"
  #define clientcredentialWIFI_SECURITY "{{Wi-Fi security}}"
  ```
**注意**  
您可以輸入下列 Wi-Fi 安全值：  
`eWiFiSecurityOpen`
`eWiFiSecurityWEP`
`eWiFiSecurityWPA`
`eWiFiSecurityWPA2`
SSID 和密碼應以雙引號括住。

**使用命令列建置和執行 FreeRTOS 示範**

1. 使用以下命令開始建置示範應用程式。

   ```
   cmake -DVENDOR=marvell -DBOARD=mw320 -DCOMPILER=arm-gcc -S .  -Bbuild -DAFR_ENABLE_TESTS=0
   ```

   請確定您取得與下列範例相同的輸出。  
![命令終端機輸出，顯示 Marvell mw300_rd 無線微控制器電路板的 FreeRTOS 建置組態詳細資訊。](http://docs.aws.amazon.com/zh_tw/freertos/latest/userguide/images/mw32x-build-demo-app1.png)

1. 導覽至建置目錄。

   ```
   cd build
   ```

1. 執行 make 公用程式來建置應用程式。

   ```
   make all -j4
   ```

   請確定您取得與下圖相同的輸出：  
![終端機輸出顯示 C 物件檔案的建置程序，並連結到靜態程式庫，並可執行 AWS 示範。](http://docs.aws.amazon.com/zh_tw/freertos/latest/userguide/images/mw32x-build-demo-app2.png)

1. 使用下列命令來建置測試應用程式。

   ```
   cmake -DVENDOR=marvell -DBOARD=mw320 -DCOMPILER=arm-gcc -S .  -Bbuild -DAFR_ENABLE_TESTS=1
   cd build
   make all -j4
   ```

   每次在 `aws_demos project`和 之間切換時，請執行 `cmake`命令`aws_tests project`。

1. 將韌體映像寫入開發板的快閃記憶體。韌體會在開發板重設後執行。您必須先建置開發套件，才能將映像刷入微型控制器。

   1. 刷新韌體映像之前，請使用常見元件配置和Boot2 準備開發板的刷新。使用下列命令。

      ```
      cd amzsdk_bundle-x.y.z
      ./vendors/marvell/WMSDK/mw320/sdk/tools/OpenOCD/flashprog.py -l ./vendors/marvell/WMSDK/mw320/sdk/tools/OpenOCD/mw300/layout.txt --boot2 ./vendors/marvell/WMSDK/mw320/boot2/bin/boot2.bin
      ```

      `flashprog` 命令會啟動下列項目：
      + 配置 – 會先指示 flashprog 公用程式將配置寫入快閃記憶體。配置類似於快閃記憶體的分割區資訊。預設配置位於 `/lib/third_party/mcu_vendor/marvell/WMSDK/mw320/sdk/tools/OpenOCD/mw300/layout.txt`。
      + Boot2 – 這是 WMSDK 使用的開機載入器。`flashprog` 命令也會將開機載入器寫入快閃記憶體。開機載入器的任務是在刷新後載入微型控制器的韌體映像。請確定您取得與下圖相同的輸出。  
![命令輸出以刷新配置和 boot2 元素。](http://docs.aws.amazon.com/zh_tw/freertos/latest/userguide/images/mw32x-output-flash-layout.png)

   1. 韌體使用 Wi-Fi 晶片組做為其功能，而 Wi-Fi 晶片組本身的韌體也必須存在於快閃記憶體中。您可以使用 `flashprog.py`公用程式，以與刷新 Boot2 開機載入器和 MCU 韌體相同的方式刷新 Wi-Fi 韌體。使用下列命令來刷新 Wi-Fi 韌體。

      ```
      cd amzsdk_bundle-x.y.z
      ./vendors/marvell/WMSDK/mw320/sdk/tools/OpenOCD/flashprog.py --wififw ./vendors/marvell/WMSDK/mw320/wifi-firmware/mw30x/mw30x_uapsta_W14.88.36.p135.bin
      ```

      請確定 命令的輸出與下圖類似。  
![閃爍 Wi-Fi 韌體](http://docs.aws.amazon.com/zh_tw/freertos/latest/userguide/images/mw32x-flash-wifi-firmware.png)

   1.  使用下列命令來刷新 MCU 韌體。

      ```
      cd amzsdk_bundle-x.y.z 
      ./vendors/marvell/WMSDK/mw320/sdk/tools/OpenOCD/flashprog.py --mcufw build/cmake/vendors/marvell/mw300_rd/aws_demos.bin -r
      ```

   1. 重設開發板。您應該會看到示範應用程式的日誌。

   1. 若要執行測試應用程式，請刷新位於相同目錄的`aws_tests.bin`二進位檔。

      ```
      cd amzsdk_bundle-x.y.z
      ./vendors/marvell/WMSDK/mw320/sdk/tools/OpenOCD/flashprog.py --mcufw build/cmake/vendors/marvell/mw300_rd/aws_tests.bin -r
      ```

      您的命令輸出應類似於下圖所示的輸出。  
![閃爍 MCU 韌體](http://docs.aws.amazon.com/zh_tw/freertos/latest/userguide/images/mw32x-flash-mcu-firmware.png)

1. 在您刷新韌體並重設電路板後，示範應用程式應啟動，如下圖所示。  
![示範應用程式啟動](http://docs.aws.amazon.com/zh_tw/freertos/latest/userguide/images/mw32x-demo-app-start.png)

1. （選用） 作為測試映像的替代方法，請使用 flashprog 公用程式，將微型控制器映像直接從主機複製到微型控制器 RAM。影像不會在快閃記憶體中複製，因此在您重新啟動微型控制器後，影像將會遺失。

   將韌體映像載入 SRAM 是更快的操作，因為它會立即啟動執行檔案。此方法主要用於反覆開發。

   使用下列命令將韌體載入 SRAM。

   ```
   cd amzsdk_bundle-x.y.z
   ./lib/third_party/mcu_vendor/marvell/WMSDK/mw320/sdk/tools/OpenOCD/ramload.py build/cmake/vendors/marvell/mw300_rd/aws_demos.axf
   ```

   下圖顯示命令輸出。  
![將韌體映像載入 SRAM](http://docs.aws.amazon.com/zh_tw/freertos/latest/userguide/images/mw32x-load-firmware-sram.png)

   當命令執行完成時，您應該會看到示範應用程式的日誌。

**使用 Eclipse IDE 建置和執行 FreeRTOS 示範**

1. 在設定 Eclipse 工作區之前，您必須執行 `cmake`命令。

   執行下列命令來使用 `aws_demos` Eclipse 專案。

   ```
   cmake -DVENDOR=marvell -DBOARD=mw320 -DCOMPILER=arm-gcc -S .  -Bbuild -DAFR_ENABLE_TESTS=0
   ```

   執行下列命令來使用 `aws_tests` Eclipse 專案。

   ```
   cmake -DVENDOR=marvell -DBOARD=mw320 -DCOMPILER=arm-gcc -S .  -Bbuild -DAFR_ENABLE_TESTS=1
   ```
**提示**  
每次在`aws_demos`專案和`aws_tests`專案之間切換時，請執行 `cmake`命令。

1. 開啟 Eclipse，並在出現提示時選擇您的 Eclipse 工作區，如下圖所示。  
![選取 Eclipse 工作區](http://docs.aws.amazon.com/zh_tw/freertos/latest/userguide/images/mw32x-select-eclipse-workspace.png)

1. 選擇建立 **Makefile 專案的選項：使用現有程式碼**，如下圖所示。  
![使用現有程式碼建立 Makefile 專案](http://docs.aws.amazon.com/zh_tw/freertos/latest/userguide/images/mw32x-create-makefile-project.png)

1. 選擇**瀏覽**，指定現有程式碼的目錄，然後選擇**完成**。  
![瀏覽以尋找現有的程式碼](http://docs.aws.amazon.com/zh_tw/freertos/latest/userguide/images/mw32x-locate-existing-code.png)

1. 在導覽窗格中，選擇專案總管中的 **aws\_demos**。在 **aws\_demos** 上按一下滑鼠右鍵以開啟選單，然後選擇**建置**。  
![建置 aws_demos 專案](http://docs.aws.amazon.com/zh_tw/freertos/latest/userguide/images/mw32x-building-aws_demos.png)

   如果建置成功，會產生 `build/cmake/vendors/marvell/mw300_rd/aws_demos.bin` 檔案。

1. 使用命令列工具來刷新配置檔案 (`layout.txt`)、Boot2 二進位 ()`boot2.bin`、MCU 韌體二進位 (`aws_demos.bin`) 和 Wi-Fi 韌體。

   1. 刷新韌體映像之前，請使用常見元件、配置和Boot2 準備開發板的刷新。使用下列命令。

      ```
      cd amzsdk_bundle-x.y.z
      ./vendors/marvell/WMSDK/mw320/sdk/tools/OpenOCD/flashprog.py -l ./vendors/marvell/WMSDK/mw320/sdk/tools/OpenOCD/mw300/layout.txt --boot2 ./vendors/marvell/WMSDK/mw320/boot2/bin/boot2.bin
      ```

      `flashprog` 命令會啟動下列項目：
      + 配置 – 會先指示 flashprog 公用程式將配置寫入快閃記憶體。配置類似於快閃記憶體的分割區資訊。預設配置位於 `/lib/third_party/mcu_vendor/marvell/WMSDK/mw320/sdk/tools/OpenOCD/mw300/layout.txt`。
      + Boot2 – 這是 WMSDK 使用的開機載入器。flashprog 命令也會將開機載入器寫入快閃記憶體。開機載入器的任務是在刷新後載入微控制器的韌體映像。請確定您取得與下圖相同的輸出。  
![命令輸出以刷新配置和 boot2 元素](http://docs.aws.amazon.com/zh_tw/freertos/latest/userguide/images/mw32x-output-flash-layout.png)

   1. 韌體使用 Wi-Fi 晶片組做為其功能，而 Wi-Fi 晶片組本身的韌體也必須存在於快閃記憶體中。您可以使用 `flashprog.py`公用程式，以與刷新 boot2 開機載入器和 MCU 韌體相同的方式刷新 Wi-Fi 韌體。使用下列命令來刷新 Wi-Fi 韌體。

      ```
      cd amzsdk_bundle-x.y.z
      ./vendors/marvell/WMSDK/mw320/sdk/tools/OpenOCD/flashprog.py --wififw ./vendors/marvell/WMSDK/mw320/wifi-firmware/mw30x/mw30x_uapsta_W14.88.36.p135.bin
      ```

      請確定 命令的輸出與下圖類似。  
![閃爍 Wi-Fi 韌體](http://docs.aws.amazon.com/zh_tw/freertos/latest/userguide/images/mw32x-flash-wifi-firmware.png)

   1.  使用下列命令來刷新 MCU 韌體。

      ```
      cd amzsdk_bundle-x.y.z
      ./vendors/marvell/WMSDK/mw320/sdk/tools/OpenOCD/flashprog.py --mcufw build/cmake/vendors/marvell/mw300_rd/aws_demos.bin -r
      ```

   1. 重設開發板。您應該會看到示範應用程式的日誌。

   1. 若要執行測試應用程式，請刷新位於相同目錄的`aws_tests.bin`二進位檔。

      ```
      cd amzsdk_bundle-x.y.z
      ./vendors/marvell/WMSDK/mw320/sdk/tools/OpenOCD/flashprog.py --mcufw build/cmake/vendors/marvell/mw300_rd/aws_tests.bin -r
      ```

      您的命令輸出應類似於下圖所示的輸出。  
![閃爍 MCU 韌體](http://docs.aws.amazon.com/zh_tw/freertos/latest/userguide/images/mw32x-flash-mcu-firmware.png)

## 除錯
<a name="gsg-mw32x-debugging"></a>
+ 啟動 Eclipse，然後選擇**說明**，然後選擇**安裝新軟體**。在**使用**功能表中，選擇**所有可用的網站**。輸入篩選條件文字 `GDB Hardware`。選取 **C/C\+\+ GDB 硬體偵錯**選項並安裝外掛程式。  
![軟體界面中安裝視窗的螢幕擷取畫面，顯示選取用於在 gdb 硬體類別下安裝的 GDB 硬體偵錯項目。](http://docs.aws.amazon.com/zh_tw/freertos/latest/userguide/images/mw32x-debugging.png)

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

**網路問題**  
檢查您的網路憑證。請參閱 中的「佈建」[建置並執行 FreeRTOS 示範專案](#gsg-mw32x-build-and-run)。

**啟用其他日誌**  
+ 啟用主機板特定日誌。

  在 `main.c` 檔案的 函數`wmstdio_init(UART0_ID, 0)`中啟用對 `prvMiscInitialization`的呼叫，以進行測試或示範。
+ 啟用 Wi-Fi 日誌

  在 `CONFIG_WLCMGR_DEBUG` `{{freertos}}/vendors/marvell/WMSDK/mw320/sdk/src/incl/autoconf.h` 檔案中啟用巨集。

**使用 GDB**  
我們建議您使用與 SDK 一起封裝的 `arm-none-eabi-gdb`和 `gdb`命令檔案。導覽至 目錄。  

```
cd {{freertos}}/lib/third_party/mcu_vendor/marvell/WMSDK/mw320
```
執行下列命令 （單行） 以連線至 GDB。  

```
arm-none-eabi-gdb -x ./sdk/tools/OpenOCD/gdbinit ../../../../../../build/cmake/vendors/marvell/mw300 _rd/aws_demos.axf
```