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 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. Si deseas 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 environment de OpenThread:
      docker pull openthread/environment:latest
      docker run -it --rm openthread/environment bash
      
  2. En el entorno que elegiste, clona el repositorio de Git de OpenThread específico de la plataforma. Tomemos 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 en la memoria flash del objeto binario deseado la plataforma de destino. Todos los objetos binarios generados ubicado en ./build/bin.

Configuración

Puedes configurar OpenThread para diferentes funcionalidades y comportamientos durante la de compilación. Las opciones de configuración disponibles se detallan a continuación ubicaciones:

Tipo Ubicación
Constantes de tiempo de compilación Aparece en todos los archivos de encabezado de /src/core/config
Opciones de compilación de CMake Aparece en 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 compila el objeto binario para la plataforma CC2538 con la compatibilidad habilitada de Commissioner y Joiner:

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

Como alternativa, para compilar la plataforma nRF52840 con la función de detección de bloqueos feature habilitado en el 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, 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
Binaria Descripción Opciones
ot-cli-ftd Dispositivo de 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 de Thread completo para diseños de coprocesadores 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 coprocesadores 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, las aplicaciones no pero los archivos de la biblioteca de OpenThread aún se generan en ./build/lib para usarlos en un proyecto.

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

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

Daemon de OpenThread

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

Cómo crear paquetes de asistencia

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