移植網路傳輸介面 - 免費RTOS

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

移植網路傳輸介面

整合 TLS 程式庫

如需 Transport Layer Security (TLS) 驗證,請使用您偏好的 TLS 堆疊。我們建議使用姆貝德 TLS因為它是使用 FreeRTOS 庫進行測試的。你可以在這裡找到一個例子GitHub儲存庫。

無論您的裝置所使用的 TLS 實作為何,您都必須針對具有 TCP/IP 堆疊的 TLS 堆疊實作基礎傳輸勾點。他們必須支持支援的 TLS 加密套件AWS IoT

移植網路傳輸介面程式庫

您必須實作網路傳輸介面才能使用中央电台核心 HTTP。網絡傳輸接口包含在單個網絡連接上發送和接收數據所需的功能指針和上下文數據。請參閱傳輸介面詳細資訊。FreeRTOS 提供一組內建的網路傳輸介面測試來驗證這些實作。以下部分將指導您如何設置項目以運行這些測試。

先決條件

若要移植此測試,您需要下列項目:

  • 具有建置系統的專案,可以使用經過驗證的 FreeRTOS 核心連接埠來建置 FreeRTOS。

  • 網絡驅動程序的工作實現。

移植

  • 新增自由圖書館集成測試作為一個子模塊到你的項目。子模塊放置在項目中的位置並不重要,只要它可以構建即可。

  • 複製config_template/test_execution_config_template.hconfig_template/test_param_config_template.h到構建路徑中的項目位置,並將其重命名為test_execution_config.htest_param_config.h

  • 在建置系統中包含相關檔案。如果使用CMake,qualification_test.cmakesrc/transport_interface_tests.cmake用於包括相關文件。

  • 在適當的專案位置實作下列功能:

    • 一個network connect function:簽名定義NetworkConnectFuncsrc/common/network_connection.h。此函數會取得指向網路內容的指標、指向主機資訊的指標,以及指向網路認證的指標。它使用提供的網絡憑據與主機信息中指定的服務器建立連接。

    • 一個network disconnect function:簽名定義NetworkDisconnectFuncsrc/common/network_connection.h。此函數會接收指向網路前後關聯的指標。它會中斷儲存在網路前後關聯中之前建立的連線。

    • setupTransportInterfaceTestParam():定義於src/transport_interface/transport_interface_tests.h。實現必須具有與中定義的完全相同的名稱和簽名transport_interface_tests.h。這個函數接受一個指向TransportInterfaceTestParam結構。它將填充中的字段TransportInterfaceTestParam傳輸介面測試所使用的結構。

  • 實施單位 _ 輸出字符以便測試輸出日誌不會與設備日誌交錯。

  • 呼叫runQualificationTest()從應用程式。設備硬件必須正確初始化,並且必須在呼叫之前連接網絡。

憑證管理 (裝置上產生的金鑰)

何時強制 _ 生成 _ 新的密鑰 _ 對test_param_config.h設置為 1,設備應用程序生成一個新的設備上的 key pair 並輸出公鑰。裝置應用程式使用回聲伺服器運輸 _ 客戶 _ 證書作為回顯服務器根 CA 和客戶端證書,當建立與 echo 服務器的 TLS 連接時。IDT 會在限定執行期間設定這些參數。

認證管理 (匯入金鑰)

裝置應用程式使用回聲伺服器,運輸 _ 客戶 _ 證書運輸 _ 用戶端 _ 私人密鑰test_param_config.h作為 echo 服務器根 CA,客戶端證書和客戶端私鑰時建立與 echo 服務器的 TLS 連接。IDT 會在限定執行期間設定這些參數。

測試

本節說明如何透過資格測試在本機測試傳輸介面。如需詳細資訊,請參閱傳輸層詳細資訊,請參閱傳輸資訊。傳輸界面在自由圖書館集成測試的部分 GitHub。

或者,您也可以使用 IDT 來自動執行。請參閱AWS IoT Device Tester對於 FreeRTOSFreeRTOS 用者指南詳細資訊。

啟用測試

打開test_execution_config.h並定義傳輸 _ 介面 _ 測試啟用到 1.

設置迴聲服務器進行測試

本地測試需要可從運行測試的設備訪問的 echo 服務器。如果傳輸介面實作支援 TLS,回應伺服器必須支援 TLS。如果你還沒有,自由圖書館集成測試 GitHub 存儲庫有一個 echo 服務器實現。

設定要測試的專案

test_param_config.h,更新迴聲伺服器端點迴聲伺服器連接埠前一步的端點和伺服器設定。

設置憑據(設備上生成的密鑰)

  • 設置回聲伺服器到 echo 服務器的服務器證書。

  • 設置強制 _ 生成 _ 新的密鑰 _ 對到 1 生成一個 key pair 並獲取公鑰。

  • 設置強制 _ 生成 _ 新的密鑰 _ 對密鑰生成後返回 0。

  • 使用公開金鑰、伺服器金鑰與憑證來產生用戶端憑證。

  • 設置運輸 _ 客戶 _ 證書到生成的客戶端證書。

設定認證 (匯入金鑰)

  • 設置回聲伺服器到 echo 服務器的服務器證書。

  • 設置運輸 _ 客戶 _ 證書至預先產生的用戶端憑證。

  • 設置運輸 _ 用戶端 _ 私人密鑰到預先生成的客戶端私鑰。

構建並刷新應用程序

使用您選擇的工具鏈來構建和刷新應用程序。何時runQualificationTest()被調用,傳輸接口測試將運行。測試結果會輸出至序列埠。

注意

要正式使用 FreeRTOS 的設備資格,您必須根據 OTA PAL 和 OTA E2E 測試組驗證設備的移植源代碼AWS IoT Device Tester。按照說明進行操作使用AWS IoT Device Tester對於 FreeRTOSFreeRTOS 用者指南若要設定AWS IoT Device Tester用於連接埠驗證。若要測試特定程式庫的連接埠,必須在device.json檔案中的AWS IoT Device Tester configs資料夾。