объектно-ориентированный C ++ RTO для микроконтроллеров
Домашняя страница
Документация
Исходный код @ github
Форум
Чтобы настроить и построить Distorto , вам нужны:
Distortos пытается следовать типичному рабочему процессу Cmake Cross Comping, что означает, что вам всегда нужно использовать так называемый файл инструмента . Файлы инструментов в Distortos также служат другой цели - они выбирают плату, которая будет использоваться вашим приложением.
output ;cmake .. -DCMAKE_TOOLCHAIN_FILE=../source/board/ST_STM32F4DISCOVERY/Toolchain-ST_STM32F4DISCOVERY.cmake -GNinja если вы хотите по умолчанию или cmake -C../configurations/ST_STM32F4DISCOVERY/test/distortosConfiguration.cmake .. -GNinja если вы хотите начать с сохраненной конфигурации;cmake-gui .. (приложение GUI) или ccmake .. (приложение -на основе CRSES );ninja или ninja -v если вы хотите увидеть все командные строки во время строительства; Очевидно, вы можете заменить шаг 1 на git clone https://github.com/DISTORTEC/distortos .
Шаги 2-4 могут быть сделаны из cmake-gui . После запуска приложения используйте кнопку «Просмотр источника ...» , чтобы выбрать папку с помощью кнопки «Стоимость» и просмотреть кнопку «Сборка ... », чтобы выбрать папку сборки. Затем нажмите кнопку «Настроить» . В окне Cmakesetup , которое появляется, выберите генератор по вашему выбору, и убедитесь, что указание файла инструментов для перекрестной компиляции выбирается, прежде чем идти дальше. Нажмите Далее и укажите файл инструментов (который также выбирает плату), например, <source-folder>/source/board/ST_STM32F4DISCOVERY/Toolchain-ST_STM32F4DISCOVERY.cmake и нажмите кнопку «Закончить» .
Цель сборки по умолчанию - все - это просто статическая библиотека с Distortos libdistortos.a . Если вы хотите построить тестовое приложение, укажите distortosTest в качестве цели (например, ninja distortosTest если вы используете 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
или
$ 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
Чтобы генерировать доску, которая вам нужна:
Как Jinja2 , так и Ruamel.yaml могут быть легко установлены с помощью pip install jinja2 && pip install ruamel.yaml (или python -m pip install jinja2 за которым следует python -m pip install ruamel.yaml в Windows ), однако они также могут быть доступны в менеджере пакета вашей системы.
Генератор платы - scripts/generateBoard.py - принимает файл *.yaml в качестве ввода и создает папку, содержащую различные файлы платы: исходные файлы, заголовки, файлы Cmake (включая файл инструмента CMAKE ) и так далее. Файл ввода *.yaml описывает аппаратное обеспечение платы в виде дерева. Идея очень близка к Devicetree , и на самом деле более ранние версии генератора платы использовали файлы Devicetree .
To get an idea about the format of the board YAML files, take a look at some of the existing files, for example source/board/ST_STM32F4DISCOVERY/ST_STM32F4DISCOVERY.yaml - which describes STM32F4DISCOVERY board from ST - or source/chip/STM32/STM32F4/chipYaml/ST_STM32F407VG.yaml - который описывает чип STM32F407VG , используемый на этой плате. Существует также некоторая документация о привязках YAML в documentation/yaml-bindings
Предполагая, что у вас уже есть Distortos либо в рамках вашего проекта, либо в качестве автономной папки, основным вызовом генератора платы является просто path/to/distortos/scripts/generateBoard.py path/to/board.yaml (или python path/to/distortos/scripts/generateBoard.py path/to/board.yaml на окнах ), например ./scripts/generateBoard.py source/board/ST_STM32F4DISCOVERY/ST_STM32F4DISCOVERY.yaml . Вы также можете генерировать так называемые необработанные платы , используя файл Chip YAML в качестве непосредственно ввода, например ./scripts/generateBoard.py source/chip/STM32/STM32F4/chipYaml/ST_STM32F407VG.yaml -o output/path/of/raw/board .