OpenThread erstellen

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

Quelle auf GitHub ansehen

Anleitung zum Erstellen von OpenThread

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

Der am häufigsten verwendete 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-environment-Image 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. Führen Sie im Stammverzeichnis des geklonten Repositorys folgende Schritte aus:
    1. Installieren Sie die Toolchain:
      ./script/bootstrap
      
    2. Erstellen Sie die Konfiguration:
      ./script/build platform-specific-args cmake-options
      
  4. Flash der gewünschten Binärdatei 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 sind unter den folgenden Stellen ausführlich beschrieben:

Typ Standort
Compile-Zeitkonstanten Wird in allen Header-Dateien in /src/core/config aufgelistet
CMake-Build-Optionen In openthread/examples/README.md aufgelistet

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 für Provisionen und Joiner:

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

So erstellen Sie die nRF52840-Plattform mit aktivierter Jam Detection-Funktion im Repository:

./script/build nrf52840 UART_trans -DOT_JAM_DETECTION=ON

Binärprogramme

Die folgenden Binärprogramme werden in ./build/bin aus dem Build-Prozess generiert. Verwenden Sie Flags mit dem Befehl ./script/build, um festzustellen, welche Binärprogramme generiert werden. So erstellen Sie beispielsweise OpenThread und generieren nur das FTD-Befehlszeilen-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 für SoC-Designs -DOT_APP_CLI=ON
-DOT_MTD=ON
ot-ncp-ftd Full-Thread-Gerät für Network Co-Processor (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ärprogramme variiert je nach Beispielplattform. Eine ausführliche Anleitung finden Sie in den README-Dateien auf den einzelnen Beispielordnern.

OpenThread-Daemon

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

Supportpakete erstellen

Build-Supportpakete (BSP) finden Sie in /third_party. BSPs sind zusätzlicher Drittanbietercode, der von OpenThread auf den entsprechenden Plattformen verwendet wird. Dieser ist im Allgemeinen beim Portieren von OpenThread auf eine neue Hardwareplattform enthalten.