RTOS C ++ orienté objet pour les microcontrôleurs
Page d'accueil
Documentation
Code source @ github
Forum
Pour configurer et construire des distortos dont vous avez besoin:
Distortos essaie de suivre le flux de travail de compilation croisée CMake typique, ce qui signifie que vous devez toujours utiliser un fichier soi-disant chaîne d'outils . Les fichiers de chaîne d'outils dans Distortos servent également un autre objectif - ils sélectionnent la carte qui sera utilisée par votre application.
output ;cmake .. -DCMAKE_TOOLCHAIN_FILE=../source/board/ST_STM32F4DISCOVERY/Toolchain-ST_STM32F4DISCOVERY.cmake -GNinja si vous voulez une configuration ou une configuration par défaut ou cmake -C../configurations/ST_STM32F4DISCOVERY/test/distortosConfiguration.cmake .. -GNinja si vous souhaitez commencer à partir d'une configuration enregistrée;cmake-gui .. (une application GUI) ou ccmake .. (Application basée sur les malédictions );ninja ou ninja -v si vous souhaitez voir toutes les lignes de commande pendant la construction; Vous pouvez évidemment remplacer l'étape 1 par git clone https://github.com/DISTORTEC/distortos .
Les étapes 2 à 4 peuvent être effectuées à partir de cmake-gui . Après le démarrage de l'application Utilisez Browse Source ... pour sélectionner le dossier avec Distortos et Browse Build ... Bouton pour sélectionner le dossier Build. Cliquez ensuite sur le bouton Configurer . Dans la fenêtre CMakesEtup qui apparaît, sélectionnez le générateur de votre choix et assurez-vous que le fichier de chaîne d'outils spécifiez pour la compilation croisée est sélectionné avant d'aller plus loin. Cliquez sur Suivant et spécifiez le fichier de chaîne d'outils (qui sélectionne également la carte), par exemple <source-folder>/source/board/ST_STM32F4DISCOVERY/Toolchain-ST_STM32F4DISCOVERY.cmake et cliquez sur le bouton Terminer .
La cible par défaut de build - tout - n'est que la bibliothèque statique avec Distortos libdistortos.a . Si vous souhaitez créer l'application de test, spécifiez distortosTest en tant que cible (par exemple ninja distortosTest si vous utilisez Ninja ).
$ 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
ou
$ 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
Pour générer une planche dont vous avez besoin:
Jinja2 et Ruamel.yaml peuvent être facilement installés avec pip install jinja2 && pip install ruamel.yaml (ou python -m pip install jinja2 suivi de python -m pip install ruamel.yaml sur windows ), mais ils peuvent également être disponibles dans le gestionnaire de package de votre système.
GÉNÉRATEUR DE CARTEUR - scripts/generateBoard.py - Prend un fichier *.yaml en entrée et produit un dossier contenant divers fichiers de carte: fichiers source, en-têtes, fichiers CMake (y compris le fichier de chaîne d'outils CMake ), etc. Le fichier d'entrée *.yaml décrit le matériel de la carte sous une forme en forme d'arborescence. L'idée est très proche de DeviceTree et en fait des versions antérieures du générateur de cartes ont utilisé des fichiers DeviceTree .
Pour avoir une idée du format des fichiers YAML de la carte, jetez un œil à certains des fichiers existants, par exemple source/board/ST_STM32F4DISCOVERY/ST_STM32F4DISCOVERY.yaml - qui décrit la carte STM32F4Discovery à partir de ST - ou source/chip/STM32/STM32F4/chipYaml/ST_STM32F407VG.yaml qui décrit la puce STM32F407VG utilisée sur cette carte. Il existe également une documentation sur les liaisons YAML dans documentation/yaml-bindings
En supposant que vous avez déjà Distortos soit dans le cadre de votre projet, soit en tant que dossier autonome, l'invocation de base du générateur de planche est juste path/to/distortos/scripts/generateBoard.py path/to/board.yaml (ou python path/to/distortos/scripts/generateBoard.py path/to/board.yaml sur Windows ), par exemple ./scripts/generateBoard.py source/board/ST_STM32F4DISCOVERY/ST_STM32F4DISCOVERY.yaml . Vous pouvez également générer des cartes dits brutes , en utilisant le fichier Chip YAML comme entrée directement, par exemple ./scripts/generateBoard.py source/chip/STM32/STM32F4/chipYaml/ST_STM32F407VG.yaml -o output/path/of/raw/board .