OpenThread erstellen

Quelle auf GitHub ansehen

OpenThread erstellen

Die Schritte zum Erstellen von OpenThread hängen von der Toolchain, dem Nutzercomputer und der Zielplattform ab.

Der gängigste Workflow ist:

  1. Richten Sie die Build-Umgebung ein und installieren Sie die gewünschte Toolchain:
    1. Direkt auf einem Computer erstellen finden Sie im Simulations-Codelab eine detaillierte Anleitung.
    2. Um einen Docker-Container mit einer vorkonfigurierten Umgebung zu verwenden,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. Hier ein Beispiel: CC2538:
    git clone https://github.com/openthread/ot-cc2538.git --recursive
    
  3. Aus dem Stammverzeichnis des geklonten Repositorys:
    1. Installieren Sie die Toolchain:
      ./script/bootstrap
      
    2. Erstellen Sie die Konfiguration:
      ./script/build platform-specific-args cmake-options
      
  4. Flashieren Sie die gewünschte Binärdatei auf die Zielplattform. Alle generierten Binärdateien befinden sich in ./build/bin.

Konfiguration

Sie können OpenThread während des Build-Prozesses für unterschiedliche Funktionen und Verhaltensweisen konfigurieren. Die verfügbaren Konfigurationsoptionen finden Sie hier:

Typ Ort
Kompilierungszeitkonstanten In allen Headerdateien in /src/core/config aufgeführt
Cmake-Build-Optionen In openthread/examples/README.md aufgeführt

Build-Beispiele

Verwenden Sie cmake-Build-Optionen, um Funktionen für die Plattform zu aktivieren. So erstellen Sie beispielsweise die Binärdatei für die CC2538-Plattform mit aktivierter Unterstützung von Commissioner und Joiner:

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

So erstellen Sie eine nRF52840-Plattform mit aktivierter Jam-Erkennungsfunktion im Repository:

./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. So erstellen Sie beispielsweise OpenThread und generieren nur die FTD-Befehlszeile:

./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 Gerät mit minimalem Thread für SoC-Designs -DOT_APP_CLI=ON
-DOT_MTD=ON
ot-ncp-ftd Full-Thread-Gerät für NCP-Designs (Network Co-Processor) -DOT_APP_NCP=ON
-DOT_FTD=ON
ot-ncp-mtd Gerät mit minimalem Thread für NCP-Designs -DOT_APP_NCP=ON
-DOT_MTD=ON
ot-rcp Design des Funk-Co-Prozessors (RCP) -DOT_APP_RCP=ON
-DOT_RCP=ON

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

In den Beispiel-Makefiles für die einzelnen Plattformen können Sie nachsehen, welche Flags von den einzelnen Plattformen unterstützt werden. Weitere Informationen zu FTDs und MTDs finden Sie unter Thread Primer. Weitere Informationen zu SoC- und NCP-Designs finden Sie unter Plattformen.

Die Binärdateien dieser Binärprogramme sind je nach Beispielplattform unterschiedlich. Eine ausführliche Anleitung finden Sie in den README-Dateien im Beispielordner der einzelnen Plattformen.

OpenThread-Daemon

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

Supportpakete erstellen

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