Nordic nRF52840-DK 入門 - 免費 RTOS

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

Nordic nRF52840-DK 入門

重要

此參考集成託管在亞馬遜的 FreeRTOS 存儲庫上,該存儲庫已被棄用。建議您在建立新專案時從這裡開始。如果您已經有一個現有的 FreeRTOS 專案以目前已取代的亞馬遜免費伺服器儲存庫為基礎,請參閱亞馬遜自由 Github 存儲庫遷移指南.

本教學課程提供 Nordic nRF52840-DK 的入門說明。如果您沒有 Nordic nRF52840-dk,請造訪AWS合作夥伴裝置目錄,向我們的合作夥伴購買。

開始之前,您需要為 FreeRTOS 低功耗藍牙設置 AWS IoT 和 Amazon Cognito

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

注意

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

概要

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

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

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

  3. 將 FreeRTOS 示範應用程式交叉編譯為二進位映像檔。

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

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

設定 Nordic 硬體

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

如需設定 Nordic nRF52840-DK 的詳細資訊,請參閱 nRF52840 開發套件使用者指南

設定開發環境

下載並安裝 Segger Embedded Studio

FreeRTOS 支持塞格嵌入式工作室作為北歐 nRF52840-dk 的開發環境。

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

下載並安裝 Segger Embedded Studio
  1. 移至 Segger Embedded Studio 下載頁面,然後為您的作業系統選擇 Embedded Studio for ARM 選項。

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

設定 FreeRTOS 低功耗藍牙行動 SDK 示範應用程式

若要跨藍牙低功耗執行 FreeRTOS 示範專案,您需要在行動裝置上執行 FreeRTOS 藍牙低功耗行動 SDK 示範應用程式。

若要設定 FreeRTOS 藍牙低功耗行動 SDK 示範應用程式
  1. 按照 適用於 FreeRTOS 藍牙裝置的行動 SDK中的指示,在您的主機電腦上下載並安裝適用於行動平台的軟體開發套件。

  2. 按照 免費藍牙低功耗移動 SDK 演示應用程序 中的指示,來在您的行動裝置上設定示範行動應用程式。

建立序列連線

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

建立與 Segger Embedded Studio 的序列連線
  1. 開啟 Segger Embedded Studio。

  2. 從上方功能表中,選擇 Target (目標)Connect J-Link (連接 J-Link)

  3. 從上方功能表中,選擇 Tools (工具)Terminal Emulator (終端機模擬器)Properties (屬性),然後依照 安裝終端機模擬器 中的指示來設定屬性。

  4. 從頂部菜單中,選擇工具終端仿真器Connect 端(115200,N,8,1)

注意

Segger 內嵌 Studio 終端模擬器不支持輸入功能。因此,請使用 PuTTy、Tera Term 或 GNU Screen 這類的終端模擬器。依照安裝終端機模擬器中的指示,將終端機設定為透過序列連線連接到您的電路板。

下載和設定 FreeRTOS

設定好硬體和環境之後,您可以下載 FreeRTOS。

下載 FreeRTOS

若要下載適用於北歐 NRF52840-dk 的 FreeRTOS,請移至 FreeRTOS GitHub 頁面並複製存放庫。如需說明,請參閱 README.md 檔案。

重要
  • 在本主題中,FreeRTOS 下載目錄的路徑稱為freertos

  • freertos 路徑中的空格字元可能會導致建置失敗。複製或拷貝儲存庫時,請確定您建立的路徑不包含空格字元。

  • Microsoft Windows 的檔案路徑長度上限為 260 個字元。長 FreeRTOS 下載目錄路徑可能會導致建置失敗。

  • 由於原始程式碼可能包含符號連結,因此如果您使用 Windows 來擷取歸檔,您可能必須:

    • 啟用開發人員模式,或

    • 使用以系統管理員身分提高權限的主控台。

    如此一來,Windows 可以在擷取歸檔時正確建立符號連結。否則,符號鏈接將被寫入為普通文件,其中包含符號鏈接的路徑作為文本或為空。如需更多資訊,請參閱部落格文章:Windows 10!

    如果您在 Windows 下使用 Git,您必須啟用開發人員模式,或者您必須:

    • 使用下列命令設定core.symlinks為 true:

      git config --global core.symlinks true
    • 每當您使用寫入系統的 git 命令時,請使用以管理員身份提升的主控台 (例如git pullgit clone、、和git submodule update --init --recursive)。

設定專案

若要啟用示範,您需要設定要使用的專案AWS IoT。若要將專案設定為與 AWS IoT 搭配使用,必須將您的裝置註冊為 AWS IoT 實物。您應該會在 為 FreeRTOS 低功耗藍牙設置 AWS IoT 和 Amazon Cognito 時註冊您的裝置。

設定 AWS IoT 端點
  1. 登入 AWS IoT 主控台

  2. 在導覽窗格中,選擇 Settings (設定)。

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

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

  4. 備妥您的 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 陳述式的清單。

  2. 開啟vendors/nordic/boards/nrf52840-dk/aws_demos/config_files/aws_demo_config.h,並按照此範CONFIG_OTA_HTTP_BLE_TRANSPORT_DEMO_ENABLED例中的方式定義CONFIG_OTA_MQTT_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
  3. 由於 Nordic 晶片隨附的 RAM 很小 (250 KB),可能需要變更 BLE 組態,以允許將較大的 GATT 表格項目與每個屬性大小進行比較。如此一來,您就可以調整應用程式取得的記憶體量。若要這麼做,請覆寫 freertos/vendors/nordic/boards/nrf52840-dk/aws_demos/config_files/sdk_config.h 檔案中下列屬性的定義:

    • NRF_SDH_BLE_VS_UUID_COUNT

      廠商專屬 UUID 的數目。當您新增特定於供應商的 UUID 時,將此計數增加 1。

    • NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE

      屬性表格大小 (以位元組為單位)。大小必須是 4 的倍數 此值表示屬性表格專用的記憶體設定數量 (包括特徵大小),因此這會因專案而異。如果超過屬性表的大小,您將得到一個 NRF_ERROR 錯誤 _ NO_MEM 錯誤。如果您修改了 NRF_SDH_BLE_GATT_ATTR_ 標籤大小,通常您也必須重新設定記憶體設定。

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

建置並執行 FreeRTOS 示範專案

下載 FreeRTOS 並設定您的示範專案之後,您就可以在主機板上建置並執行示範專案了。

重要

如果這是您首次在這個主機板上執行示範,請務必先刷新主機板的開機載入器,再開始執行該示範。

如果要建置和刷新開機載入器,請遵循下方步驟操作,但請使用 projects/nordic/nrf52840-dk/ses/aws_demos/bootloader/bootloader.emProject,而不是 projects/nordic/nrf52840-dk/ses/aws_demos/aws_demos.emProject 專案檔案。

從 Segger 嵌入式工作室構建和運行 FreeRTOS 藍牙低功耗演示
  1. 開啟 Segger Embedded Studio。在上方功能表中,選擇 File (檔案),並選擇 Open Solution (開啟解決方案),然後導覽至專案檔案 projects/nordic/nrf52840-dk/ses/aws_demos/aws_demos.emProject

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

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

  3. 以滑鼠右鍵按一下專案總管中的aws_demos示範專案,然後選擇 [建置]

    注意

    如果這是您第一次使用 Segger Embedded Studio,您可能會看到警告「無商業使用授權」。您可以將 Segger Embedded Studio 免費用於 Nordic Semiconductor 裝置。請求免費許可證然後,在安裝過程中選擇激活您的免費許可證,然後按照說明進行操作。

  4. 選擇 Debug (除錯),然後選擇 Go (前往)

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

  5. 按照 MQTT 藍牙低功耗示範應用程式的說明,以 FreeRTOS 藍牙低功耗行動 SDK 示範應用程式做為行動 MQTT 代理完成示範。

疑難排解

如需 FreeRTOS 入門的一般疑難排解資訊,請參閱故障診斷入門