開始使用 Infineon OPTIGA Trust X 和 XMC4800 IoT Connectivity Kit - 免費RTOS

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

開始使用 Infineon OPTIGA Trust X 和 XMC4800 IoT Connectivity Kit

重要

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

本教學提供 Infineon OPTIGA Trust X 安全元素和 XMC4800 IoT Connectivity Kit 的入門說明。與 Infineon XMC4800 IoT 連線套件入門 教學相比,本指南會示範如何使用 Infineon OPTIGA Trust X 安全元素提供安全登入資料。

您需要下列硬體:

  1. 主機 MCU-英飛凌 XMC4800 IoT 連接套件,請訪問AWS合作夥伴設備目錄,向我們的合作夥伴購買一個。

  2. 安全性延伸套件:

    • 安全元素 - Infineon OPTIGA Trust X。

      請造訪合AWS作夥伴裝置目錄,向我們的合作夥伴購買。

    • 個人化面板 - Infineon OPTIGA 個人化面板。

    • 適配器板-英飛凌 MyIo T 適配器。

若要遵循此處的步驟,您必須使用面板開啟序列連線,才能檢視記錄和偵錯資訊。其中一個步驟要求您從主機板的序列除錯輸出中複製公開金鑰,並將其貼到檔案中。) 為此,除了 XMC4800 IoT 連接套件之外,您還需要一個 3.3V USB/ 序列轉換器。已知此示範使用 JBtek EL-PN-47310126 US/序列轉換器。您還需要三條 male-to-male 跳線(用於接收(RX),傳輸(TX)和接地(GND)),以將串行電纜連接到英飛凌 MyIo T 適配器板。

在開始之前,您必須先設定 FreeRTOSAWS IoT 並下載,才能將裝置連線到AWS雲端。如需相關指示,請參閱選項 #2:產生內建私有金鑰。在此教學課程中,FreeRTOS 下載目錄的路徑稱為freertos

概要

本教學課程包含以下步驟:

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

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

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

  4. 如需監控與偵錯,請透過序列連線與在面板上執行的應用程式互動。

設定開發環境

FreeRTOS 使用英飛凌的 DAVE 開發環境對 XMC4800 進行程式設計。開始之前,請下載並安裝 DAVE 和一些 J-Link 驅動程式,以與內建除錯器通訊。

安裝 DAVE

  1. 前往 Infineon 的 DAVE software download 頁面。

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

  3. 下載 DAVE 套件 .zip 檔案 (DAVE_version_os_date.zip),並解壓縮至您要安裝 DAVE 的位置 (例如 C:\DAVE4)。

    注意

    部分 Windows 使用者曾回報使用 Windows 檔案總管解壓縮檔案時會發生問題。我們建議您使用第三方程式,例如 7-Zip。

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

如需詳細資訊,請參閱 DAVE Quick Start Guide

若要與 XMC4800 IoT Connectivity Kit 的內建偵錯探查通訊,J-Link 軟體和文件套件中需要包含驅動程式。您可以從 Segger 的 J-Link software download 頁面下載 J-Link 軟體和文件套件。

建立序列連線

將 USB/序列轉換器纜線連接至 Infineon Shield2Go Adapter。這可讓面板使用您在開發機器上檢視的格式,傳送記錄和偵錯資訊。設定序列連接:

  1. 將 RX pin 接到您 USB/序列轉換器的 TX pin。

  2. 將 TX pin 接到您 USB/序列轉換器的 RX pin。

  3. 將序列轉換器的接地 pin 接到面板其中一個 GND pin。裝置必須共用共同的接地線。

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

注意

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

連接纜線時,您可以在終端機模擬器 (例如 GNU Screen) 上開啟序列連接。傳輸速率預設為 115200,含 8 個資料位元、無同位與 1 個停止位元。

監控雲端的 MQTT 訊息

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

使用 AWS IoT MQTT 用戶端訂閱 MQTT 主題
  1. 登入 AWS IoT 主控台

  2. 在導覽窗格中,選擇 [測試],然後選擇 [MQTT 測試用戶端] 以開啟 MQTT 用戶端。

  3. 訂閱主題中輸入 your-thing-name/example/topic,然後選擇訂閱主題

當演示項目成功運行在您的設備上,你會看到「你好世界!」 多次發送到您訂閱的主題。

建置並執行 FreeRTOS 示範專案

將 FreeRTOS 演示導入到 DAVE

  1. 啟動 DAVE。

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

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

    在您解壓縮 FreeRTOS 下載的目錄中,示範專案位於projects/infineon/xmc4800_plus_optiga_trust_x/dave4/aws_demos/dave4.

    確定清除 Copy Projects Into Workspace (複製專案至工作區)

  4. 選擇 Finish (完成)。

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

  5. Project (專案) 功能表中,選擇 Build Active Project (建置作用中的專案)

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

執行 FreeRTOS 示範專案

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

  2. Project Explorer (專案瀏覽器) 中,以滑鼠右鍵按一下 aws_demos,選擇 Debug As (除錯工具),然後選擇 DAVE C/C++ Application (DAVE C/C++ 應用程式)

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

  4. 當除錯器停在 main() 中斷點時,請從 Run (執行) 功能表,選擇 Resume (繼續)

此時,請繼續執行選項 #2:產生內建私有金鑰中的擷取公用金鑰步驟。完成所有步驟後,請移至 AWS IoT 主控台。您之前設定的 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 使用者示範

此節說明在 Windows 上透過 MingW 作為原生建置系統以使用 CMake。如需有關搭配其他作業系統和選項以使用 CMake 的詳細資訊,請參閱 搭配使用 FreeRTOS 體。(MinGW 是本機 Microsoft Windows 應用程式的簡約開發環境。)

如果您不想使用 IDE 進行 FreeRTOS 開發,可以使用 CMake 來構建和運行使用第三方代碼編輯器和調試工具開發的演示應用程序或應用程序。

若要使用 CMake 建置 FreeRTOS 體示範
  1. 設定 GNU Arm 內嵌式工具鏈。

    1. Arm Embedded Toolchain 下載頁面下載 Windows 版的工具鏈。

      注意

      因為 objcopy 公用程式有錯誤回報,因此建議您下載 "8-2018-q4-major" 以外的版本。

    2. 開啟下載的工具鏈安裝程式,然後依照精靈中的指示進行。

    3. 在安裝精靈的最終頁面中,選擇 Add path to environment variable (新增路徑至環境變數) 以新增工具鏈路徑到系統路徑環境變數。

  2. 安裝 CMake 和 MingW。

    如需詳細說明,請參閱 CMake 先決條件

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

  4. 將目錄更改為 FreeRTOS 下載目錄 (freertos),然後使用以下命令生成構建文件:

    cmake -DVENDOR=infineon -DBOARD=xmc4800_plus_optiga_trust_x -DCOMPILER=arm-gcc -S . -B build-folder -G "MinGW Makefiles" -DAFR_ENABLE_TESTS=0
  5. 將目錄變更到建置目錄 (build-folder),然後使用下列命令來建置二進位:

    cmake --build . --parallel 8

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

  6. 使用 JLINK 刷新並執行映像。

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

      echo loadfile aws_demos.hex > flash.jlink echo r >> flash.jlink echo g >> flash.jlink echo q >> flash.jlink
    2. 使用 JLNIK 可執行檔來刷新映像。

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

      您應該可透過使用面板建立的序列連線看到應用程式日誌。繼續執行選項 #2:產生內建私有金鑰中的擷取公用金鑰步驟。完成所有步驟之後,請移至 AWS IoT 主控台。您之前設定的 MQTT 用戶端應該會顯示您裝置傳送的 MQTT 訊息。

疑難排解

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