Afficher le code source sur GitHub
Créer OpenThread
Les étapes de création d'OpenThread varient en fonction de la chaîne d'outils, de la machine utilisateur et de la plate-forme cible.
Voici le workflow le plus courant:
- Configurez l'environnement de compilation et installez la chaîne d'outils souhaitée :
- Pour créer directement un code sur une machine,consultez l'atelier de programmation de simulation pour obtenir des instructions détaillées.
- Pour utiliser un conteneur Docker avec un environnement préconfiguré, téléchargez et exécutez l'image OpenThread
environment
:docker pull openthread/environment:latest
docker run -it --rm openthread/environment bash
- Dans l'environnement de votre choix, clonez le dépôt Git OpenThread spécifique à la plate-forme. Prenons l'exemple de CC2538 :
git clone https://github.com/openthread/ot-cc2538.git --recursive
- À partir du répertoire racine du dépôt cloné :
- Installez la chaîne d'outils :
./script/bootstrap
- Créez la configuration :
./script/build platform-specific-args cmake-options
- Installez la chaîne d'outils :
- Flashez le binaire souhaité sur la plate-forme cible. Tous les binaires générés se trouvent dans
./build/bin
.
Configuration
Vous pouvez configurer OpenThread pour différentes fonctionnalités et différents comportements pendant le processus de compilation. Les options de configuration disponibles sont détaillées aux emplacements suivants:
Type | Emplacement |
---|---|
Constantes de compilation | Répertorié dans tous les fichiers d'en-tête de /src/core/config |
Options de création cmake | Répertorié dans openthread/examples/README.md |
Exemples de compilation
Utilisez les options de création cmake pour activer les fonctionnalités de la plate-forme. Par exemple, pour créer le binaire de la plate-forme CC2538 avec l'activation du commissaire et des jointures:
./script/build -DOT_COMMISSIONER=ON -DOT_JOINER=ON
Vous pouvez également créer la plate-forme nRF52840 avec la fonctionnalité de détection de jams activée dans son dépôt:
./script/build nrf52840 UART_trans -DOT_JAM_DETECTION=ON
Binaires
Les binaires suivants sont générés dans ./build/bin
à partir du processus de compilation. Pour déterminer les binaires générés, utilisez des options avec la commande ./script/build
. Par exemple, pour créer OpenThread et ne générer que le binaire de la CLI FTD:
./script/build -DOT_APP_CLI=ON -DOT_FTD=ON -DOT_MTD=OFF -DOT_APP_NCP=OFF -DOT_APP_RCP=OFF -DOT_RCP=OFF
Binaire | Description | Options |
---|---|---|
ot-cli-ftd |
Appareil Thread complet pour les SoC | -DOT_APP_CLI=ON -DOT_FTD=ON |
ot-cli-mtd |
Appareil Thread minimal pour les SoC | -DOT_APP_CLI=ON -DOT_MTD=ON |
ot-ncp-ftd |
Appareil à thread complet pour les conceptions de coprocesseur de réseau (NCP) | -DOT_APP_NCP=ON -DOT_FTD=ON |
ot-ncp-mtd |
Appareil Thread minimal pour les conceptions NCP | -DOT_APP_NCP=ON -DOT_MTD=ON |
ot-rcp |
Co-processeur de radiofréquences (RCP) | -DOT_APP_RCP=ON -DOT_RCP=ON |
Par défaut, tous les indicateurs ci-dessus sont activés. Si vous désactivez explicitement toutes les options, les applications ne sont pas créées, mais les fichiers de la bibliothèque OpenThread sont toujours générés dans ./build/lib
pour être utilisés dans un projet.
Consultez le répertoire examples/platforms
pour connaître les options compatibles avec chaque plate-forme. Pour en savoir plus sur les FTD et les MTD, consultez le Thread Primer. Pour en savoir plus sur les conceptions SoC et NCP, consultez la section Plates-formes.
Le processus de flashage de ces binaires varie selon les exemples de plates-formes. Consultez les fichiers README dans le dossier d'exemple de chaque plate-forme pour obtenir des instructions détaillées.
Daemon OpenThread
Le Daemon OpenThread (OT Daemon) est un mode de compilation OpenThread POSIX qui exécute OpenThread en tant que service et est utilisé avec la conception RCP. Pour en savoir plus sur sa création et son utilisation, consultez le daemon OpenThread.
Créer des formules d'assistance
Les formules d'assistance pour la compilation sont disponibles dans /third_party
. Les BSP sont des codes tiers supplémentaires utilisés par OpenThread sur chaque plate-forme respective, généralement inclus lors du portage d'OpenThread vers une nouvelle plate-forme matérielle.