OpenThread erstellen
Die Schritte zum Erstellen von OpenThread variieren je nach Toolchain, Nutzercomputer und Zielplattform.
Der häufigste Workflow ist:
- Richten Sie die Build-Umgebung ein und installieren Sie die gewünschte Toolchain:
- Direkt auf einem Computer erstellen: Eine detaillierte Anleitung finden Sie im Simulations-Codelab.
- So verwenden Sie einen Docker-Container mit einer vorkonfigurierten Umgebung: Laden Sie das OpenThread-Image
environmentherunter und führen Sie es aus:docker pull openthread/environment:latestdocker run -it --rm openthread/environment bash
- 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 - Führen Sie im Stammverzeichnis des geklonten Repositorys folgenden Befehl aus:
- Installieren Sie die Toolchain:
./script/bootstrap - Konfiguration erstellen:
./script/build platform-specific-args cmake-options
- Installieren Sie die Toolchain:
- 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.