OpenThread erstellen

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

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. Eine detaillierte Anleitung zum Erstellen direkt auf einer Maschine finden Sie im Simulations-Codelab.
    2. Wenn Sie einen Docker-Container mit einer vorkonfigurierten Umgebung verwenden möchten, 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. Nehmen wir CC2538 als Beispiel:
    git clone https://github.com/openthread/ot-cc2538.git --recursive
    
  3. Über das Stammverzeichnis des geklonten Repositorys:
    1. Installieren Sie die Toolchain:
      ./script/bootstrap
      
    2. Erstellen Sie die Konfiguration:
      ./script/build platform-specific-args cmake-options
      
  4. Flashen Sie das gewünschte Binärprogramm in die Zielplattform. Alle generierten Binärprogramme 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
Kompilierungszeitkonstanten Wird in allen Header-Dateien in /src/core/config aufgeführt
Cmake-Build-Optionen Aufgeführt in openthread/examples/README.md

Build-Beispiele

Mit cmake-Build-Optionen können Sie Funktionen für die Plattform aktivieren. So erstellen Sie beispielsweise das Binärprogramm für die CC2538-Plattform mit aktivierter Unterstützung von Kommissar und Joiner:

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

So erstellen Sie die nRF52840-Plattform mit aktiviertem Jam Detection-Feature im Repository:

./script/build nrf52840 UART_trans -DOT_JAM_DETECTION=ON

Binärprogramme

Die folgenden Binärdateien werden in ./build/bin aus dem Build-Prozess generiert. Verwenden Sie Flags mit dem Befehl ./script/build, um zu ermitteln, welche Binärdateien generiert werden. So erstellen Sie beispielsweise OpenThread und generieren nur das FTD-CLI-Binärprogramm:

./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 Full-Thread-Gerät für SoC-Designs -DOT_APP_CLI=ON
-DOT_FTD=ON
ot-cli-mtd Minimaler Thread-Modus für SoC-Designs -DOT_APP_CLI=ON
-DOT_MTD=ON
ot-ncp-ftd Full-Thread-Gerät für Network Co-Processor-Designs (NCP-Designs) -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 RCP-Design (Radio Co-Processor) -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 sehen Sie, welche Flags die einzelnen Plattformen unterstützen. Weitere Informationen zu FTDs und MTDs finden Sie unter Thread Primer. Weitere Informationen zu SoC- und NCP-Designs finden Sie unter Plattformen.

Das Verfahren zum Flashen dieser Binärdateien variiert je nach Beispielplattform. Eine ausführliche Anleitung finden Sie in den READMEs im Beispielordner der einzelnen Plattformen.

OpenThread-Daemon

OpenThread Daemon (OT Daemon) ist ein OpenThread POSIX-Build-Modus, der OpenThread als Dienst ausführt und mit dem RCP-Design verwendet wird. Weitere Informationen zur Erstellung und Verwendung finden Sie unter OpenThread-Daemon.

Supportpakete erstellen

Build-Supportpakete (BSPs) finden Sie unter /third_party. BSPs sind zusätzlicher Drittanbietercode, der von OpenThread auf den einzelnen Plattformen verwendet wird. Sie wird im Allgemeinen beim Portieren von OpenThread auf eine neue Hardwareplattform eingebunden.