Objektorientierte C ++-RTOs für Mikrocontroller
Homepage
Dokumentation
Quellcode @ github
Forum
So konfigurieren und erstellen Sie Distortos, die Sie benötigen:
Distortos versucht, den typischen CMake- Cross-Compiling-Workflow zu befolgen, was bedeutet, dass Sie immer eine sogenannte Toolchain-Datei verwenden müssen. Toolchain -Dateien in Distortos erfüllen ebenfalls einen anderen Zweck - sie wählen die Karte aus, die von Ihrer Anwendung verwendet wird.
output ;cmake -C../configurations/ST_STM32F4DISCOVERY/test/distortosConfiguration.cmake .. -GNinja cmake .. -DCMAKE_TOOLCHAIN_FILE=../source/board/ST_STM32F4DISCOVERY/Toolchain-ST_STM32F4DISCOVERY.cmake -GNinja cmake -C../configurations/ST_STM32F4DISCOVERY/test/distortosConfiguration.cmake .. -GNinja Wenn Sie mit einer gespeicherten Konfiguration beginnen möchten;cmake-gui .. (eine GUI -Anwendung) oder ccmake .. ( Flüche -basierte Anwendung);ninja oder ninja -v wenn Sie alle Befehlszeilen beim Erstellen sehen möchten. Sie können Schritt 1 natürlich durch git clone https://github.com/DISTORTEC/distortos ersetzen.
Die Schritte 2-4 können alle innerhalb von cmake-gui aus erledigt werden. Nach dem Start der Anwendung können Sie die Schaltfläche Quelle durchsuchen, um den Ordner mit Distortos auszuwählen und die Schaltfläche "Build" durchsuchen, um den Build -Ordner auszuwählen. Klicken Sie dann auf die Schaltfläche Konfigurieren . Wählen Sie im Fenster cmakesetup , das angezeigt wird, den Generator Ihrer Wahl aus und stellen Sie sicher, dass die Toolchain-Datei für das Cross-Compiling ausgewählt wird, bevor Sie weiter gehen. Klicken Sie auf Weiter und geben Sie die ToolChain-Datei an (die auch die Karte auswählt), z. B. <source-folder>/source/board/ST_STM32F4DISCOVERY/Toolchain-ST_STM32F4DISCOVERY.cmake und klicken Sie auf die Schaltfläche Fertigstellen .
Das Standardziel von Build - ALL - ist nur die statische Bibliothek mit Distortos libdistortos.a . Wenn Sie die Testanwendung erstellen möchten, geben Sie distortosTest als Ziel an (z. B. ninja distortosTest , wenn Sie Ninja verwenden).
$ wget https://github.com/DISTORTEC/distortos/archive/master.tar.gz
$ tar -xf master.tar.gz
$ cd distortos-master
$ mkdir output
$ cd output
$ cmake .. -DCMAKE_TOOLCHAIN_FILE=../source/board/ST_STM32F4DISCOVERY/Toolchain-ST_STM32F4DISCOVERY.cmake -GNinja
$ cmake-gui ..
$ ninja
oder
$ wget https://github.com/DISTORTEC/distortos/archive/master.tar.gz
$ tar -xf master.tar.gz
$ cd distortos-master
$ mkdir output
$ cd output
$ cmake -C../configurations/ST_STM32F4DISCOVERY/test/distortosConfiguration.cmake .. -GNinja
$ cmake-gui ..
$ ninja
Um ein Brett zu generieren, das Sie benötigen:
Sowohl Jinja2 als auch Ruamel.yaml können einfach mit pip install jinja2 && pip install ruamel.yaml (oder python -m pip install jinja2 gefolgt von python -m pip install ruamel.yaml unter Windows ), aber sie können auch im Paketmanager Ihres Systems erhältlich sein.
Board Generator - scripts/generateBoard.py - Erstellt eine *.yaml -Datei als Eingabe und erstellt einen Ordner mit verschiedenen Board -Dateien: Quelldateien, Header, CMake -Dateien (einschließlich CMake -Toolchain -Datei) usw. Die Eingabe *.yaml -Datei beschreibt die Board-Hardware in baumartigen Form. Die Idee ist Devicetree sehr nahe und in der Tat frühere Versionen des Board -Generators verwendeten Devicetree -Dateien.
Um eine Vorstellung vom Format der YAML -Dateien zu erhalten, sehen Sie sich einige der vorhandenen Dateien an, source/chip/STM32/STM32F4/chipYaml/ST_STM32F407VG.yaml source/board/ST_STM32F4DISCOVERY/ST_STM32F4DISCOVERY.yaml Dies beschreibt STM32F407VG -Chip, der auf dieser Platine verwendet wird. Es gibt auch einige Dokumentationen zu YAML-Bindungen in documentation/yaml-bindings
Unter der Annahme, dass Sie bereits als Teil Ihres Projekts oder als eigenständiger Ordner verzerrt haben, ist der grundlegende Aufruf des Board -Generators nur path/to/distortos/scripts/generateBoard.py path/to/board.yaml (oder python path/to/distortos/scripts/generateBoard.py path/to/board.yaml ) ./scripts/generateBoard.py source/board/ST_STM32F4DISCOVERY/ST_STM32F4DISCOVERY.yaml . Sie können auch sogenannte Rohboards generieren, indem ./scripts/generateBoard.py source/chip/STM32/STM32F4/chipYaml/ST_STM32F407VG.yaml -o output/path/of/raw/board die Chip-YAML-Datei als Eingabe direkt verwenden.