RTOs C ++ orientados a objetos para microcontroladores
Página inicial
Documentação
Código -fonte @ github
Fórum
Para configurar e construir distortos que você precisa:
O Distortos tenta seguir o fluxo de trabalho de compilação cruzada do CMake típico, o que significa que você sempre precisa usar o chamado arquivo da cadeia de ferramentas . Os arquivos da cadeia de ferramentas no Distortos também servem a outro propósito - eles selecionam a placa que será usada pelo seu aplicativo.
output ;cmake .. -DCMAKE_TOOLCHAIN_FILE=../source/board/ST_STM32F4DISCOVERY/Toolchain-ST_STM32F4DISCOVERY.cmake -GNinja Se você deseja uma configuração ou chake default ou cmake -C../configurations/ST_STM32F4DISCOVERY/test/distortosConfiguration.cmake .. -GNinja se você deseja iniciar a partir de uma configuração salva;cmake-gui .. (um aplicativo da GUI) ou ccmake .. (aplicativo baseado em maldições );ninja ou ninja -v se você quiser ver todas as linhas de comando durante a criação; Obviamente, você pode substituir a etapa 1 pelo git clone https://github.com/DISTORTEC/distortos .
As etapas 2-4 podem ser feitas de dentro cmake-gui . Depois de iniciar o aplicativo, use o botão Browse Source ... para selecionar a pasta com o botão Distortos e Procue Build ... para selecionar a pasta Build. Em seguida, clique no botão Configurar . Na janela CMakesetup , que aparece, selecione o gerador de sua escolha e verifique se o arquivo especificado da cadeia de ferramentas para compilagem cruzado é selecionado antes de ir mais longe. Clique em Avançar e especifique o arquivo da Chain de Ferramentas (que também seleciona a placa), por exemplo, <source-folder>/source/board/ST_STM32F4DISCOVERY/Toolchain-ST_STM32F4DISCOVERY.cmake e clique no botão Finalizar .
O alvo padrão do Build - todos - é apenas a biblioteca estática com distortos libdistortos.a . Se você deseja criar o aplicativo de teste, especifique distortosTest como o destino (por exemplo, ninja distortosTest se você usar 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
Para gerar uma placa que você precisa:
Jinja2 e Ruamel.yaml podem ser facilmente instalados com pip install jinja2 && pip install ruamel.yaml (ou python -m pip install jinja2 seguido pelo python -m pip install ruamel.yaml no windows ), no entanto, eles também podem estar disponíveis no gerente de pacotes do seu sistema.
Gerador da placa - scripts/generateBoard.py - pega um arquivo *.yaml como uma entrada e produz uma pasta que contém vários arquivos da placa: arquivos de origem, cabeçalhos, arquivos cmake (incluindo o arquivo CMake Toolchain) e assim por diante. O arquivo de entrada *.yaml descreve o hardware da placa em um formulário semelhante a uma árvore. A ideia está muito próxima de devicete e, de fato, versões anteriores do gerador de placas usavam arquivos deviceTree .
Para ter uma idéia sobre o formato dos arquivos YAML da placa, dê uma olhada em alguns dos arquivos existentes, por exemplo source/board/ST_STM32F4DISCOVERY/ST_STM32F4DISCOVERY.yaml - que descreve o STM32F4Discovery Board de St - ou source/chip/STM32/STM32F4/chipYaml/ST_STM32F407VG.yaml - que descreve o chip STM32F407VG usado nesta placa. Há também alguma documentação sobre as ligações da YAML na documentation/yaml-bindings
Supondo que você já tenha distortos como parte do seu projeto ou como uma pasta independente, a invocação básica do gerador da placa é apenas path/to/distortos/scripts/generateBoard.py path/to/board.yaml (ou python path/to/distortos/scripts/generateBoard.py path/to/board.yaml ) , para ./scripts/generateBoard.py source/board/ST_STM32F4DISCOVERY/ST_STM32F4DISCOVERY.yaml scripts. ./scripts/generateBoard.py source/board/ST_STM32F4DISCOVERY/ST_STM32F4DISCOVERY.yaml . Você também pode gerar as chamadas bordas , usando o arquivo YAML de chip como entrada diretamente, por exemplo ./scripts/generateBoard.py source/chip/STM32/STM32F4/chipYaml/ST_STM32F407VG.yaml -o output/path/of/raw/board .