OpenThread erstellen

Quelle auf GitHub ansehen

OpenThread erstellen

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

Am häufigsten werden folgende Workflows verwendet:

  1. Richten Sie die Build-Umgebung ein und installieren Sie die gewünschte Toolchain:
    1. Eine Anleitung zum Erstellen direkt auf einem Computer finden Sie im Codelab „Simulation“.
    2. Um einen Docker-Container mit einer vorkonfigurierten Umgebung zu verwenden, müssen Sie das OpenThread-Image environmentherunterladen und ausführen:
      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. CC2538 als Beispiel:
    git clone https://github.com/openthread/ot-cc2538.git --recursive
    
  3. Aus dem geklonten Stammverzeichnis des Klons:
    1. Installieren Sie die Toolchain:
      ./script/bootstrap
      
    2. Erstellen Sie die Konfiguration:
      ./script/build platform-specific-args cmake-options
      
  4. Stellen Sie das gewünschte Binärprogramm auf die Zielplattform zurück. Alle generierten Binärprogramme befinden sich in ./build/bin.

Konfiguration

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

Typ Standort
Konstanten für Kompilierungszeiten In allen Headerdateien in /src/core/config aufgeführt
Cmake-Build-Optionen In openthread/examples/README.md aufgeführt

Build-Beispiele

cmake-Build-Optionen, um die Funktion für die Plattform zu aktivieren. So erstellen Sie beispielsweise das Binärprogramm für die Plattform CC2538 mit aktivierter Unterstützung für Kommission 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 im Build-Prozess in ./build/bin 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-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 „Minimal Thread“-Gerät für SoC-Designs -DOT_APP_CLI=ON
-DOT_MTD=ON
ot-ncp-ftd Full-Thread-Gerät für NCP-Netzwerke (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 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 die OpenThread-Bibliotheksdateien werden zur Verwendung in einem Projekt weiterhin in ./build/lib generiert.

Sehen Sie sich die Beispiel-Makefiles für jede Plattform an, um zu sehen, welche Flags die einzelnen Plattformen unterstützen. Weitere Informationen zu FTDs und MTDs finden Sie in der Thread-Primer-Hilfe. Weitere Informationen zu SoC- und NCP-Designs finden Sie unter Plattformen.

Das Flash-Verfahren dieser Binärprogramme variiert je nach Beispielplattform. Eine ausführliche Anleitung finden Sie in den README-Dateien auf den einzelnen Plattformen und im Beispielordner.

OpenThread-Daemon

OpenThread Daemon (OT Daemon) ist ein OpenThread POSIX-Build-Modus, der OpenThread als Dienst ausführt und beim RCP-Design zum Einsatz kommt. Weitere Informationen zur Erstellung und Verwendung finden Sie unter OpenThread Daemon.

Build-Supportpakete

Build-Supportpakete (BSPs) finden Sie in /third_party. BSPs sind zusätzlicher Drittanbietercode, der von OpenThread auf der jeweiligen Plattform verwendet wird. In der Regel ist dieser bei der Portierung von OpenThread auf eine neue Hardwareplattform enthalten.