

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Portabilidad de una pila TCP/IP
<a name="afr-porting-tcp"></a>

Esta sección proporciona instrucciones para realizar la portabilidad y probar las pilas TCP/IP integradas. Si su plataforma descarga la funcionalidad TCP/IP y TLS en un procesador o módulo de red distinto, puede omitir esta sección de la portabilidad y continuar en [Portabilidad de la interfaz de transporte de red](afr-porting-network-transport-interface.md).

[FreeRTOS\$1TCP](https://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/index.html) es una pila TCP/IP nativa para el kernel de FreeRTOS. El mantenimiento y desarrollo de FreeRTOS\$1TCP corre a cargo del equipo de ingeniería de FreeRTOS, por lo que es la pila TCP/IP recomendada para su uso con FreeRTOS. Para obtener más información, consulte [Portabilidad de FreeRTOS\$1TCP](#porting-freertos-tcp). Como alternativa, puede utilizar la pila TCP/IP de terceros [IwIP](https://savannah.nongnu.org/projects/lwip/). La instrucción de prueba que se proporciona en esta sección utiliza las pruebas de la interfaz de transporte para texto simple de TCP y no depende de la pila de TCP/IP específica implementada. 

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

FreeRTOS\$1TCP es una pila TCP/IP nativa para el kernel FreeRTOS. Para obtener más información, consulte [FreeRTOS.org](https://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/).

### Requisitos previos
<a name="porting-prereqs-freertos-tcp"></a>

Para realizar la portabilidad de la biblioteca FreeRTOS\$1TCP, necesita lo siguiente:
+ Un proyecto de IDE que incluya los controladores de Ethernet o Wi-Fi suministrados por el proveedor.

  Para obtener información sobre el modo de configurar un proyecto de prueba, consulte [Configuración del espacio de trabajo y el proyecto para la portabilidad](porting-set-up-project.md).
+ Una configuración validada del kernel de FreeRTOS.

  Para obtener información sobre cómo configurar el kernel de FreeRTOS para su plataforma, consulte [Configuración de un puerto de kernel FreeRTOS](afr-porting-kernel.md).

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

Antes de empezar a realizar la portabilidad de la biblioteca FreeRTOS\$1TCP, compruebe el directorio [GitHub](https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/tree/main/source/portable/NetworkInterface) para ver si ya se existe una portabilidad a la placa.

Si no existe ningún puerto, haga lo siguiente:

1. Siga las instrucciones ofrecidas en [Porting FreeRTOS\$1TCP to a Different Microcontroller](https://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/Embedded_Ethernet_Porting.html) en FreeRTOS.org para realizar la portabilidad de FreeRTOS\$1TCP al dispositivo.

1. Si es necesario, siga las instrucciones de [Porting FreeRTOS\$1TCP to a New Embedded C Compiler](https://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/Embedded_Compiler_Porting.html) en FreeRTOS.org para realizar la portabilidad de FreeRTOS\$1TCP a un nuevo compilador.

1. Implemente una nueva portabilidad que use los controladores Ethernet o Wi-Fi proporcionados por el proveedor en un archivo llamado `NetworkInterface.c`. Consulte el repositorio de [GitHub](https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/tree/main/source/portable/NetworkInterface/board_family) para obtener una plantilla.

Después de crear una portabilidad, o si ya existe una, cree `FreeRTOSIPConfig.h` y edite las opciones de configuración para que sean correctas para su plataforma. Para obtener más información acerca de las opciones de configuración, consulte [FreeRTOS\$1TCP Configuration](https://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_IP_Configuration.html) en FreeRTOS.org.

## Testeo
<a name="testing-tcp"></a>

Tanto si utiliza la biblioteca FreeRTOS\$1TCP o una biblioteca de terceros, siga los pasos que se indican a continuación para realizar las pruebas:
+ Proporcione una implementación para las API `connect/disconnect/send/receive` en las pruebas de interfaz de transporte.
+ Configure un servidor echo en el modo de conexión TCP de texto plano y ejecute las pruebas de la interfaz de transporte.

**nota**  
Para calificar oficialmente un dispositivo para FreeRTOS, si su arquitectura requiere realizar la portabilidad de una pila de software TCP/IP, debe validar el código fuente portado del dispositivo con las pruebas de interfaz de transporte en modo de conexión TCP de texto plano con AWS IoT Device Tester. Siga las instrucciones de [Uso de AWS IoT Device Tester para FreeRTOS](https://docs.aws.amazon.com/freertos/latest/userguide/device-tester-for-freertos-ug.html) en la *Guía del usuario de FreeRTOS* para configurar AWS IoT Device Tester para la validación de la portabilidad. Para probar el puerto de una biblioteca concreta, se debe habilitar el grupo de pruebas correcto en el archivo `device.json` de la carpeta `configs` de Device Tester.