OpenThread erstellen

Quelle auf GitHub ansehen

OpenThread erstellen

Die Schritte zum Erstellen von OpenThread variieren je nach Toolchain, Nutzercomputer und Zielplattform.

Der häufigste Workflow ist:

  1. Richten Sie die Build-Umgebung ein und installieren Sie die gewünschte Toolchain:
    1. Direkt auf einem Computer erstellen: Eine detaillierte Anleitung finden Sie im Simulations-Codelab.
    2. So verwenden Sie einen Docker-Container mit einer vorkonfigurierten Umgebung: Laden Sie das OpenThread-Image environment herunter und führen Sie es aus:
      docker pull openthread/environment:latest
      docker run -it --rm openthread/environment bash
      
  2. Klonen Sie in der ausgewählten Umgebung das plattformspezifische OpenThread-Git-Repository. Beispiel für CC2538:
    git clone https://github.com/openthread/ot-cc2538.git --recursive
    
  3. Führen Sie im Stammverzeichnis des geklonten Repositorys folgenden Befehl aus:
    1. Installieren Sie die Toolchain:
      ./script/bootstrap
      
    2. Konfiguration erstellen:
      ./script/build platform-specific-args cmake-options
      
  4. Flashen Sie das gewünschte Binärprogramm auf die Zielplattform. Alle generierten Binärdateien befinden sich in ./build/bin.

Konfiguration

Sie können OpenThread während des Build-Prozesses für verschiedene Funktionen und Verhaltensweisen konfigurieren. Die verfügbaren Konfigurationsoptionen werden an den folgenden Stellen ausführlich beschrieben:

Typ Standort
Kompilierzeitkonstanten In allen Headerdateien in /src/core/config aufgeführt
cmake-Build-Optionen Aufgeführt in /etc/cmake/options.cmake

Beispiele erstellen

Verwenden Sie CMake-Build-Optionen, um Funktionen für die Plattform zu aktivieren. Wenn Sie beispielsweise das Binärprogramm für die CC2538-Plattform mit aktivierter Unterstützung für Commissioner und Joiner erstellen möchten, führen Sie den folgenden Befehl aus:

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

So erstellen Sie die nRF52840-Plattform mit der Funktion Jam Detection (Störungserkennung), die in ihrem Repository aktiviert ist:

./script/build nrf52840 UART_trans -DOT_JAM_DETECTION=ON

Binärprogramme

Die folgenden Binärdateien werden im Build-Prozess in ./build/bin generiert. Verwenden Sie Flags mit dem Befehl ./script/build, um zu ermitteln, welche Binärdateien generiert werden. Wenn Sie beispielsweise OpenThread erstellen und nur die binäre FTD-Befehlszeile generieren möchten:

./script/build -DOT_APP_CLI=ON -DOT_FTD=ON -DOT_MTD=OFF -DOT_APP_NCP=OFF -DOT_APP_RCP=OFF -DOT_RCP=OFF
Binär Beschreibung Optionen
ot-cli-ftd Vollständiges Thread-Gerät für SoC-Designs -DOT_APP_CLI=ON
-DOT_FTD=ON
ot-cli-mtd Minimales Thread-Gerät für SoC-Designs -DOT_APP_CLI=ON
-DOT_MTD=ON
ot-ncp-ftd Vollständiges Thread-Gerät für NCP-Designs (Network Co-Processor) -DOT_APP_NCP=ON
-DOT_FTD=ON
ot-ncp-mtd Minimales Thread-Gerät für NCP-Designs -DOT_APP_NCP=ON
-DOT_MTD=ON
ot-rcp Design des Funk-Coprozessors (RCP) -DOT_APP_RCP=ON
-DOT_RCP=ON

Standardmäßig sind alle oben genannten Flags aktiviert. Wenn Sie alle Flags explizit deaktivieren, werden keine Anwendungen erstellt, aber OpenThread-Bibliotheksdateien werden weiterhin in ./build/lib für die Verwendung in einem Projekt generiert.

Im Verzeichnis examples/platforms können Sie nachsehen, welche Flags von den einzelnen Plattformen unterstützt werden. Weitere Informationen zu FTDs und MTDs finden Sie im Thread Primer. Weitere Informationen zu SoC- und NCP-Designs finden Sie unter Plattformen.

Die Vorgehensweise zum Flashen dieser Binärdateien variiert je nach Beispielplattform. Eine detaillierte Anleitung finden Sie in den README-Dateien im Beispielordner der jeweiligen Plattform.

OpenThread-Daemon

Der OpenThread-Daemon (OT-Daemon) ist ein OpenThread-POSIX-Build-Modus, in dem OpenThread als Dienst ausgeführt wird. Er wird mit dem RCP-Design verwendet. Weitere Informationen zum Erstellen und Verwenden finden Sie unter OpenThread Daemon.

Supportpakete erstellen

Build-Supportpakete (BSPs) finden Sie unter /third_party. BSPs sind zusätzlicher Drittanbietercode, der von OpenThread auf jeder jeweiligen Plattform verwendet wird. Sie werden in der Regel beim Portieren von OpenThread auf eine neue Hardwareplattform eingebunden.