

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

# 移植 TCP/IP 堆疊
<a name="afr-porting-tcp"></a>

本節提供移植和測試內建 TCP/IP 堆疊的指示。如果您的平台將 TCP/IP 和 TLS 功能卸載至不同的網路處理器或模組，您可以略過此移植區段，並造訪 [移植網路傳輸界面](afr-porting-network-transport-interface.md)。

[FreeRTOS\$1TCP](https://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/index.html) 是 FreeRTOS 核心的原生 TCP/IP 堆疊。FreeRTOS\$1TCP 由 FreeRTOS 工程團隊開發和維護，是建議與 FreeRTOS 搭配使用的 TCP/IP 堆疊。如需詳細資訊，請參閱[移植 FreeRTOS\$1TCP](#porting-freertos-tcp)。或者，您可以使用第三方 TCP/IP 堆疊 [lwIP](https://savannah.nongnu.org/projects/lwip/) 。本節提供的測試說明使用 TCP 純文字的傳輸介面測試，不依賴於特定實作的 TCP/IP 堆疊。

## 移植 FreeRTOS\$1TCP
<a name="porting-freertos-tcp"></a>

FreeRTOS\$1TCP 是 FreeRTOS 核心的原生 TCP/IP 堆疊。如需詳細資訊，請參閱 [FreeRTOS.org](https://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/)。

### 先決條件
<a name="porting-prereqs-freertos-tcp"></a>

若要移植 FreeRTOS\$1TCP 程式庫，您需要以下項目：
+ 包含廠商提供的乙太網路或 Wi-Fi 驅動程式的 IDE 專案。

  如需有關設定測試專案的詳細資訊，請參閱 [設定您的工作區和專案以進行移植](porting-set-up-project.md)。
+ FreeRTOS 核心的已驗證組態。

  如需有關為您的平台設定 FreeRTOS 核心的詳細資訊，請參閱 [設定 FreeRTOS 核心連接埠](afr-porting-kernel.md)。

### 移植
<a name="porting-steps-freertos-tcp"></a>

開始移植 FreeRTOS\$1TCP 程式庫之前，請檢查 [GitHub](https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/tree/main/source/portable/NetworkInterface) 目錄，以查看您電路板的連接埠是否已存在。

如果連接埠不存在，請執行下列動作：

1. 依照 FreeRTOS.org 上的[將 FreeRTOS\$1TCP 移植到不同的微控制器](https://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/Embedded_Ethernet_Porting.html)指示，將 FreeRTOS\$1TCP 移植到您的裝置。

1. 如有必要，依照 FreeRTOS.org 上的[將 FreeRTOS\$1TCP 移植到新的 Embedded C 編譯器](https://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/Embedded_Compiler_Porting.html)指示，將 FreeRTOS\$1TCP 移植到新的編譯器。

1. 在名為 的檔案中實作使用廠商提供乙太網路或 Wi-Fi 驅動程式的新連接埠`NetworkInterface.c`。請造訪 [GitHub](https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/tree/main/source/portable/NetworkInterface/board_family) 儲存庫以取得範本。

建立連接埠後，或連接埠已經存在，請建立 `FreeRTOSIPConfig.h`，並編輯組態選項，以便它們適用於您的平台。如需組態選項的詳細資訊，請參閱 FreeRTOS.org 上的 [FreeRTOS\$1TCP 組態](https://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_IP_Configuration.html)。

## 測試
<a name="testing-tcp"></a>

無論您是使用 FreeRTOS\$1TCP 程式庫或第三方程式庫，請依照下列步驟進行測試：
+ 在傳輸介面測試中提供 `connect/disconnect/send/receive` APIs實作。
+ 在純文字 TCP 連線模式下設定回應伺服器，並執行傳輸介面測試。

**注意**  
若要正式符合 FreeRTOS 的裝置資格，如果您的架構需要移植 TCP/IP 軟體堆疊，您需要使用純文字 TCP 連線模式，根據傳輸介面測試來驗證裝置的移植原始碼 AWS IoT Device Tester。請遵循 [ FreeRTOS 使用者指南中的使用 AWS IoT Device Tester for FreeRTOS](https://docs.aws.amazon.com/freertos/latest/userguide/device-tester-for-freertos-ug.html) 中的指示來設定 AWS IoT Device Tester 連接埠驗證。 *FreeRTOS * 若要測試特定程式庫的連接埠，必須在 Device Tester `configs` 資料夾的 `device.json` 檔案中啟用正確的測試群組。