Cómo compilar OpenThread

Ver el 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 para obtener instrucciones detalladas.
    2. Para usar un contenedor de Docker con un entorno preconfigurado, descarga y ejecuta la imagen de OpenThread environment:
      docker pull openthread/environment:latest
      docker run -it --rm openthread/environment bash
      
  2. Dentro del entorno que elegiste, clona el repositorio de Git de OpenThread específico para la plataforma. Tomemos como ejemplo el CC2538:
    git clone https://github.com/openthread/ot-cc2538.git --recursive
    
  3. Desde el directorio raíz del repositorio clonado, ejecuta el siguiente comando:
    1. Instala la cadena de herramientas:
      ./script/bootstrap
      
    2. Compila la configuración:
      ./script/build platform-specific-args cmake-options
      
  4. Graba el archivo binario deseado en la plataforma de destino. Todos los archivos binarios generados se encuentran en ./build/bin.

Configuración

Puedes configurar OpenThread para que tenga diferentes funciones 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 Se incluye en todos los archivos de encabezado de /src/core/config
Opciones de compilación de CMake Aparece en /etc/cmake/options.cmake

Compila ejemplos

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

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

O bien, para compilar la plataforma nRF52840 con la función de detección de interferencias habilitada en su repo, haz lo siguiente:

./script/build nrf52840 UART_trans -DOT_JAM_DETECTION=ON

Objetos binarios

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

./script/build -DOT_APP_CLI=ON -DOT_FTD=ON -DOT_MTD=OFF -DOT_APP_NCP=OFF -DOT_APP_RCP=OFF -DOT_RCP=OFF
Objeto binario 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 de 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 de NCP -DOT_APP_NCP=ON
-DOT_MTD=ON
ot-rcp Diseño del coprocesador de radio (RCP) -DOT_APP_RCP=ON
-DOT_RCP=ON

De forma predeterminada, todas las marcas anteriores están habilitadas. Si inhabilitas explícitamente todas las marcas, no se compilan las aplicaciones, pero los archivos de la biblioteca de OpenThread se siguen generando en ./build/lib para su uso 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 los MTD, consulta la Guía básica sobre subprocesos. Para obtener más información sobre los diseños de SoC y NCP, consulta Plataformas.

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

Daemon de OpenThread

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

Compila paquetes de asistencia

Los paquetes de asistencia para la compilación (BSP) se encuentran en /third_party. Los BSP son código adicional de terceros que usa OpenThread en cada plataforma respectiva y, por lo general, se incluyen cuando se porta OpenThread a una nueva plataforma de hardware.