

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

# Nordic nRF52840-DK 入門
<a name="getting_started_nordic"></a>

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

本教學課程提供 Nordic nRF52840-DK 的入門說明。如果您沒有 Nordic nRF52840-DK，請造訪 AWS Partner Device Catalog 向[我們的合作夥伴](https://devices.amazonaws.com/detail/a3G0L00000AANtrUAH/nRF52840-Development-Kit)購買。

開始之前，您需要[設定 AWS IoT 和 Amazon Cognito for FreeRTOS 低功耗藍牙](ble-demo.md#set-up-ble-demo-aws)。

若要執行 FreeRTOS 低功耗藍牙示範，您也需要具有藍牙和 Wi-Fi 功能的 iOS 或 Android 行動裝置。

**注意**  
如果您使用 iOS 裝置，您需要 Xcode 來建置示範行動應用程式。如果您使用 Android 裝置，您可以使用 Android Studio 來建置示範行動應用程式。

## 概觀
<a name="getting_started_nordic-overview"></a>

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

1. 將主機板連線到主機機器。

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

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

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

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

## 設定 Nordic 硬體
<a name="nordic-setup-hardware"></a>

請將主機電腦連接至標籤為 J2 的 USB 連接埠，其位於 Nordic nRF52840 主機板鈕釦型電池座的正上方。

如需設定 Nordic nRF52840-DK 的詳細資訊，請參閱 [nRF52840 開發套件使用者指南](http://infocenter.nordicsemi.com/pdf/nRF52840_DK_User_Guide_v1.2.pdf)。

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

### 下載並安裝 Segger Embedded Studio
<a name="install-embedded-studio"></a>

FreeRTOS 支援 Segger Embedded Studio 做為 Nordic nRF52840-DK 的開發環境。

若要設定您的環境，您需要在主機電腦上下載並安裝 Segger Embedded Studio。

**下載並安裝 Segger Embedded Studio**

1. 移至 [Segger Embedded Studio 下載](https://www.segger.com/downloads/embedded-studio/)頁面，然後為您的作業系統選擇 Embedded Studio for ARM 選項。

1. 執行安裝程式並遵循提示來完成操作。

### 設定 FreeRTOS 低功耗藍牙行動 SDK 示範應用程式
<a name="install-mobile-sdks"></a>

若要跨低功耗藍牙執行 FreeRTOS 示範專案，您需要在行動裝置上執行 FreeRTOS 低功耗藍牙行動開發套件示範應用程式。

**設定 FreeRTOS 低功耗藍牙行動開發套件示範應用程式**

1. 按照 [適用於 FreeRTOS 藍牙裝置的 Mobile SDKs](freertos-ble-mobile.md)中的指示，在您的主機電腦上下載並安裝適用於行動平台的軟體開發套件。

1. 按照 [FreeRTOS 低功耗藍牙行動 SDK 示範應用程式](ble-demo.md#ble-sdk-app) 中的指示，來在您的行動裝置上設定示範行動應用程式。

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

Segger Embedded Studio 包含終端機模擬器，您可以用來透過電路板的序列連線接收日誌訊息。

**建立與 Segger Embedded Studio 的序列連線**

1. 開啟 Segger Embedded Studio。

1. 從上方功能表中，選擇 **Target (目標)**、**Connect J-Link (連接 J-Link)**。

1. 從上方功能表中，選擇 **Tools (工具)**、**Terminal Emulator (終端機模擬器)**、**Properties (屬性)**，然後依照 [安裝終端機模擬器](gsg-troubleshooting.md#uart-term) 中的指示來設定屬性。

1. 從頂端功能表中，選擇**工具**、**終端機模擬器**、**連線*連接埠* (115200，N，8，1)**。

**注意**  
Segger 內嵌 Studio 終端模擬器不支持輸入功能。因此，請使用 PuTTy、Tera Term 或 GNU Screen 這類的終端模擬器。依照[安裝終端機模擬器](gsg-troubleshooting.md#uart-term)中的指示，將終端機設定為透過序列連線連接到您的電路板。

## 下載並設定 FreeRTOS
<a name="nordic-download-and-configure"></a>

設定硬體和環境後，您可以下載 FreeRTOS。

### 下載 FreeRTOS
<a name="nordic-download"></a>

若要下載 Nordic nRF52840-DK 的 FreeRTOS，請前往 [FreeRTOS GitHub 頁面](https://github.com/aws/amazon-freertos)並複製儲存庫。如需說明，請參閱 [ README.md](https://github.com/aws/amazon-freertos/blob/main/README.md) 檔案。

**重要**  
在本主題中，FreeRTOS 下載目錄的路徑稱為 `freertos`。
`freertos` 路徑中的空格字元可能會導致建置失敗。複製或拷貝儲存庫時，請確定您建立的路徑不包含空格字元。
Microsoft Windows 的檔案路徑長度上限為 260 個字元。長 FreeRTOS 下載目錄路徑可能會導致建置失敗。
由於原始碼可能包含符號連結，如果您使用 Windows 擷取封存，您可能必須：  
啟用[開發人員模式](https://docs.microsoft.com/en-us/windows/apps/get-started/enable-your-device-for-development)或 
使用提升為管理員的主控台。
如此一來，Windows 可以在擷取封存時正確建立符號連結。否則，符號連結會寫入為一般檔案，其中包含符號連結的路徑為文字或空白。如需詳細資訊，請參閱 [ Windows 10！ 中的部落格項目 Symlinks](https://blogs.windows.com/windowsdeveloper/2016/12/02/symlinks-windows-10/)。  
如果您在 Windows 下使用 Git，則必須啟用開發人員模式，或者您必須：  
使用下列命令將 `core.symlinks`設為 true：  

    ```
    git config --global core.symlinks true
    ```
每當您使用寫入系統的 git 命令 （例如 **git pull**、 和 ) 時**git clone**，請使用提升為管理員的主控台**git submodule update --init --recursive**。

### 設定專案
<a name="nordic-freertos-config-project"></a>

若要啟用示範，您需要設定專案以使用 AWS IoT。若要設定專案以使用 AWS IoT，您的裝置必須註冊為 AWS IoT 物件。您應該會在 [設定 AWS IoT 和 Amazon Cognito for FreeRTOS 低功耗藍牙](ble-demo.md#set-up-ble-demo-aws) 時註冊您的裝置。

**設定您的 AWS IoT 端點**

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

1. 在導覽窗格中，選擇**設定**。

   您的 AWS IoT 端點會出現在 **裝置資料端點**文字方塊中。它看起來應該會像這樣：`1234567890123-ats.iot.us-east-1.amazonaws.com`。記下此端點。

1. 在導覽窗格中，選擇 **Manage (管理)**，然後選擇 **Things (實物)**。記下您裝置的 AWS IoT 物件名稱。

1. 在您的 AWS IoT 端點和實 AWS IoT 物名稱準備好時，在 IDE `freertos/demos/include/aws_clientcredential.h`中開啟 ，並指定下列`#define`常數的值：
   + `clientcredentialMQTT_BROKER_ENDPOINT` *您的 AWS IoT 端點*
   + `clientcredentialIOT_THING_NAME` *電路板的 AWS IoT 物件名稱*

**啟用示範**

1. 檢查低功耗藍牙 GATT 示範是否已啟用。移至 `vendors/nordic/boards/nrf52840-dk/aws_demos/config_files/iot_ble_config.h`，並將 `#define IOT_BLE_ADD_CUSTOM_SERVICES ( 1 )` 新增至 define 陳述式的清單。

1. 開啟 `vendors/nordic/boards/nrf52840-dk/aws_demos/config_files/aws_demo_config.h`，並在此範例中定義 `CONFIG_OTA_MQTT_BLE_TRANSPORT_DEMO_ENABLED`或 `CONFIG_OTA_HTTP_BLE_TRANSPORT_DEMO_ENABLED` 。

   ```
   /* To run a particular demo you need to define one of these.
    * Only one demo can be configured at a time
    *
    *          CONFIG_BLE_GATT_SERVER_DEMO_ENABLED
    *          CONFIG_MQTT_BLE_TRANSPORT_DEMO_ENABLED
    *          CONFIG_SHADOW_BLE_TRANSPORT_DEMO_ENABLED
    *          CONFIG_OTA_MQTT_BLE_TRANSPORT_DEMO_ENABLED
    *          CONFIG_OTA_HTTP_BLE_TRANSPORT_DEMO_ENABLED
    *          CONFIG_POSIX_DEMO_ENABLED
    *
    *  These defines are used in iot_demo_runner.h for demo selection */
   
   #define CONFIG_OTA_MQTT_BLE_TRANSPORT_DEMO_ENABLED
   ```

1. 由於 Nordic 晶片隨附的 RAM 很小 (250 KB)，可能需要變更 BLE 組態，以允許將較大的 GATT 表格項目與每個屬性大小進行比較。如此一來，您就可以調整應用程式取得的記憶體量。若要這麼做，請覆寫 `freertos/vendors/nordic/boards/nrf52840-dk/aws_demos/config_files/sdk_config.h` 檔案中下列屬性的定義：
   + NRF\$1SDH\$1BLE\$1VS\$1UUID\$1COUNT

     廠商專屬 UUID 的數目。當您新增廠商特定的 UUID 時，將此計數增加 1。
   + NRF\$1SDH\$1BLE\$1GATTS\$1ATTR\$1TAB\$1SIZE

     屬性表格大小 (以位元組為單位)。大小必須是 4 的倍數 此值表示屬性資料表 （包括特性大小） 專用記憶體的設定量，因此這將因專案而異。如果您超過屬性資料表的大小，則會收到 NRF\$1ERROR\$1NO\$1MEM 錯誤。如果您修改 NRF\$1SDH\$1BLE\$1GATTS\$1ATTR\$1TAB\$1SIZE，通常您也必須重新設定 RAM 設定。

   (若為測試，檔案位置為 `freertos/vendors/nordic/boards/nrf52840-dk/aws_tests/config_files/sdk_config.h`)。

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

下載 FreeRTOS 並設定示範專案後，您就可以在電路板上建置和執行示範專案。

**重要**  
如果這是您首次在這個主機板上執行示範，請務必先刷新主機板的開機載入器，再開始執行該示範。  
如果要建置和刷新開機載入器，請遵循下方步驟操作，但請使用 `projects/nordic/nrf52840-dk/ses/aws_demos/bootloader/bootloader.emProject`，而不是 `projects/nordic/nrf52840-dk/ses/aws_demos/aws_demos.emProject` 專案檔案。

**從 Segger Embedded Studio 建置和執行 FreeRTOS 低功耗藍牙示範**

1. 開啟 Segger Embedded Studio。在上方功能表中，選擇 **File (檔案)**，並選擇 **Open Solution (開啟解決方案)**，然後導覽至專案檔案 `projects/nordic/nrf52840-dk/ses/aws_demos/aws_demos.emProject`。

1. 如果您是使用 Segger Embedded Studio 終端機模擬器，請從上方功能表中選擇 **Tools (工具)**，然後選擇 **Terminal Emulator (終端機模擬器)**。**Terminal Emulator (終端機模擬器)** 即會顯示來自序列連線的資訊。

   如果您是使用另一個終端工具，則可以監控該工具，以取得適用於序列連線的輸出。

1. 在 **Project Explorer** 中的`aws_demos`示範專案上按一下滑鼠右鍵，然後選擇**建置**。
**注意**  
如果這是您第一次使用 Segger Embedded Studio，您可能會看到警告「無商業使用授權」。您可以將 Segger Embedded Studio 免費用於 Nordic Semiconductor 裝置。然後[，請求免費授權](http://license.segger.com/Nordic.cgi)，在設定期間選擇**啟用免費授權**，然後遵循指示。

1. 選擇 **Debug (除錯)**，然後選擇 **Go (前往)**。

   該示範開始執行後，即會等待以低功耗藍牙與行動裝置配對。

1. 遵循 [MQTT over Bluetooth Low Energy Demo Application](https://docs.aws.amazon.com/freertos/latest/userguide/ble-demo.html#ble-demo-mqtt) 的指示，使用 FreeRTOS Bluetooth Low Energy Mobile SDK 示範應用程式做為行動 MQTT 代理來完成示範。

## 故障診斷
<a name="nordic-troubleshooting"></a>

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