Crea OpenThread

Visualizza il codice sorgente su GitHub

Come creare OpenThread

I passaggi per creare OpenThread variano in base alla toolchain, alla macchina dell'utente e alla piattaforma di destinazione.

Il workflow più comune è:

  1. Configura l'ambiente di build e installa la toolchain desiderata:
    1. Per eseguire la build direttamente su una macchina,consulta il codelab sulla simulazione per istruzioni dettagliate.
    2. Per utilizzare un container Docker con un ambiente preconfigurato,scarica ed esegui l'immagine environment di OpenThread:
      docker pull openthread/environment:latest
      docker run -it --rm openthread/environment bash
      
  2. Nell'ambiente scelto, clona il repository Git OpenThread specifico della piattaforma. Prendendo come esempio CC2538:
    git clone https://github.com/openthread/ot-cc2538.git --recursive
    
  3. Dalla directory radice del repository clonato:
    1. Installa la toolchain:
      ./script/bootstrap
      
    2. Crea la configurazione:
      ./script/build platform-specific-args cmake-options
      
  4. Carica il binario desiderato sulla piattaforma di destinazione. Tutti i file binari generati si trovano in ./build/bin.

Configurazione

Puoi configurare OpenThread per diverse funzionalità e comportamenti durante il processo di build. Le opzioni di configurazione disponibili sono descritte in dettaglio nelle seguenti posizioni:

Tipo Località
Costanti di compilazione Elencato in tutti i file di intestazione in /src/core/config
cmake build options Elencato in /etc/cmake/options.cmake

Creare esempi

Utilizza le opzioni di compilazione di CMake per abilitare la funzionalità per la piattaforma. Ad esempio, per creare il binario per la piattaforma CC2538 con il supporto di Commissioner e Joiner abilitato:

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

In alternativa, per creare la piattaforma nRF52840 con la funzionalità di rilevamento del jamming abilitata nel relativo repository:

./script/build nrf52840 UART_trans -DOT_JAM_DETECTION=ON

Programmi binari

I seguenti file binari vengono generati in ./build/bin dal processo di compilazione. Per determinare quali file binari vengono generati, utilizza i flag con il comando ./script/build. Ad esempio, per creare OpenThread e generare solo il file binario dell'interfaccia a riga di comando FTD:

./script/build -DOT_APP_CLI=ON -DOT_FTD=ON -DOT_MTD=OFF -DOT_APP_NCP=OFF -DOT_APP_RCP=OFF -DOT_RCP=OFF
Binario Descrizione Opzioni
ot-cli-ftd Dispositivo Thread completo per i progetti SoC -DOT_APP_CLI=ON
-DOT_FTD=ON
ot-cli-mtd Dispositivo Thread minimo per i design SoC -DOT_APP_CLI=ON
-DOT_MTD=ON
ot-ncp-ftd Dispositivo Thread completo per progetti Network Co-Processor (NCP) -DOT_APP_NCP=ON
-DOT_FTD=ON
ot-ncp-mtd Dispositivo Thread minimo per i design NCP -DOT_APP_NCP=ON
-DOT_MTD=ON
ot-rcp Progettazione del coprocessore radio (RCP) -DOT_APP_RCP=ON
-DOT_RCP=ON

Per impostazione predefinita, tutti i flag precedenti sono abilitati. Se disattivi esplicitamente tutti i flag, le applicazioni non vengono create, ma i file della libreria OpenThread vengono comunque generati in ./build/lib per essere utilizzati in un progetto.

Controlla la directory examples/platforms per vedere quali flag supporta ogni piattaforma. Per saperne di più su FTD e MTD, consulta la guida introduttiva ai thread. Per maggiori informazioni sui progetti SoC e NCP, consulta Piattaforme.

La procedura per eseguire il flashing di questi binari varia a seconda delle piattaforme di esempio. Per istruzioni dettagliate, consulta i file README nella cartella degli esempi di ogni piattaforma.

Daemon OpenThread

OpenThread Daemon (OT Daemon) è una modalità di compilazione POSIX di OpenThread che esegue OpenThread come servizio e viene utilizzata con la progettazione RCP. Per saperne di più su come crearlo e utilizzarlo, consulta OpenThread Daemon.

Creare pacchetti di assistenza

I pacchetti di assistenza per la build (BSP) si trovano in /third_party. I BSP sono codice di terze parti aggiuntivo utilizzato da OpenThread su ogni piattaforma rispettiva, generalmente incluso durante il porting di OpenThread su una nuova piattaforma hardware.