

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 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` API の実装を提供します。
+ プレーンテキスト TCP 接続モードでエコーサーバーをセットアップし、トランスポートインターフェイスのテストを実行します。

**注記**  
アーキテクチャで TCP/IP ソフトウェアスタックを移植する必要がある場合に、FreeRTOS 用にデバイスを正式に認定するには、AWS IoT Device Tester を使用して、プレーンテキスト TCP 接続モードでトランスポートインターフェイステストと照合しながらデバイスの移植されたソースコードを検証する必要があります。「FreeRTOS ユーザーガイド」の「[Using AWS IoT Device Tester for FreeRTOS](https://docs.aws.amazon.com/freertos/latest/userguide/device-tester-for-freertos-ug.html)」に記載されている手順に従って、移植の検証に使う AWS IoT Device Tester を設定します。特定のライブラリのポートをテストするには、Device Tester `device.json` フォルダの `configs` ファイルで正しいテストグループを有効にする必要があります。