Cómo compilar OpenThread

Ver código fuente en GitHub

Cómo compilar OpenThread

Los pasos para compilar OpenThread varían según la cadena de herramientas, la máquina del usuario y la plataforma de destino.

El flujo de trabajo más común es el siguiente:

  1. Configura el entorno de compilación y, luego, instala la cadena de herramientas deseada:
    1. Para compilar directamente en una máquina, consulta el Codelab de simulación a fin de obtener instrucciones detalladas.
    2. Para usar un contenedor de Docker con un entorno preconfigurado, descarga y ejecuta la imagen environment de OpenThread:
      docker pull openthread/environment:latest
      docker run -it --rm openthread/environment bash
      
  2. Dentro del entorno elegido, clona el repositorio de Git de OpenThread específico de la plataforma. Tomando CC2538 como ejemplo:
    git clone https://github.com/openthread/ot-cc2538.git --recursive
    
  3. Desde el directorio raíz del repositorio clonado, haz lo siguiente:
    1. Instala la cadena de herramientas:
      ./script/bootstrap
      
    2. Compila la configuración:
      ./script/build platform-specific-args cmake-options
      
  4. Escribe el objeto binario deseado en la plataforma de destino. Todos los objetos binarios generados se encuentran en ./build/bin.

Configuración

Puedes configurar OpenThread para diferentes funcionalidades y comportamientos durante el proceso de compilación. Las opciones de configuración disponibles se detallan en las siguientes ubicaciones:

Tipo Ubicación
Constantes de tiempo de compilación Aparece en la lista de todos los archivos de encabezado en /src/core/config
opciones de compilación de CMake Aparece en la lista de openthread/examples/README.md

Ejemplos de compilación

Usa las opciones de compilación de CMake para habilitar la funcionalidad de la plataforma. Por ejemplo, para compilar el objeto binario de la plataforma CC2538 con la compatibilidad de Commissioner y Joiner habilitada:

./script/build -DOT_COMMISSIONER=ON -DOT_JOINER=ON

O bien, para compilar la plataforma nRF52840 con la función de detección de Jam habilitada en su repositorio:

./script/build nrf52840 UART_trans -DOT_JAM_DETECTION=ON

Objetos binarios

Los siguientes objetos binarios se generan en ./build/bin a partir del proceso de compilación. Para determinar qué objetos binarios se generan, usa marcas con el comando ./script/build. Por ejemplo, para compilar OpenThread y generar solo el objeto binario de la CLI de FTD:

./script/build -DOT_APP_CLI=ON -DOT_FTD=ON -DOT_MTD=OFF -DOT_APP_NCP=OFF -DOT_APP_RCP=OFF -DOT_RCP=OFF
Clases binarias Descripción Opciones
ot-cli-ftd Dispositivo Thread completo para diseños de SoC -DOT_APP_CLI=ON
-DOT_FTD=ON
ot-cli-mtd Dispositivo Thread mínimo para diseños SoC -DOT_APP_CLI=ON
-DOT_MTD=ON
ot-ncp-ftd Dispositivo Thread completo para diseños de coprocesador de red (NCP) -DOT_APP_NCP=ON
-DOT_FTD=ON
ot-ncp-mtd Dispositivo Thread mínimo para diseños NCP -DOT_APP_NCP=ON
-DOT_MTD=ON
ot-rcp Diseño de coprocesador de radio (RCP) -DOT_APP_RCP=ON
-DOT_RCP=ON

De forma predeterminada, todas las marcas anteriores están habilitadas. Si inhabilitas de manera explícita todas las marcas, las aplicaciones no se compilan, pero los archivos de la biblioteca de OpenThread se generan en ./build/lib para usarse en un proyecto.

Consulta el directorio examples/platforms para ver qué marcas admite cada plataforma. Para obtener más información sobre los FTD y MTD, consulta Primer Thread. Para obtener más información sobre los diseños de SoC y NCP, consulta Plataformas.

El proceso de instalación de estos objetos binarios varía según las plataformas de ejemplo. Consulta los archivos README en la carpeta de ejemplo de cada plataforma para obtener instrucciones detalladas.

OpenThread Daemon

OpenThread Daemon (OT Daemon) es un modo de compilación de Thread POSIX que ejecuta OpenThread como servicio y se usa con el diseño de RCP. Para obtener más información sobre cómo compilarla y usarla, consulta Daemon de OpenThread.

Crea paquetes de asistencia

Los paquetes de asistencia de compilación (BSP) se encuentran en /third_party. Los BSP son códigos de terceros adicionales que utiliza OpenThread en cada una de las plataformas, por lo general, se incluyen cuando se transporta OpenThread a una plataforma nueva de hardware.