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 è:
- Configura l'ambiente di build e installa la toolchain desiderata:
- Per eseguire la build direttamente su una macchina,consulta il codelab sulla simulazione per istruzioni dettagliate.
- Per utilizzare un container Docker con un ambiente preconfigurato,scarica ed esegui l'immagine
environmentdi OpenThread:docker pull openthread/environment:latestdocker run -it --rm openthread/environment bash
- 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 - Dalla directory radice del repository clonato:
- Installa la toolchain:
./script/bootstrap - Crea la configurazione:
./script/build platform-specific-args cmake-options
- Installa la toolchain:
- 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.