Mini editor AUTOSAR grátis para microcontroladores

Neste post quero compartilhar com vocês um programa que escrevi para desenvolver software para microcontroladores de acordo com um padrão próximo ao AUTOSAR.





Em 2018, fui convidado a trabalhar na EPAM Belarus em um projeto de terceirização para desenvolver software para leme. Concordei com grande prazer e fui morar e trabalhar na Bielo-Rússia.





Neste projeto, conheci o padrão de desenvolvimento de software na indústria automotiva - AUTOSAR .





Algumas palavras sobre AUTOSAR

De acordo com o padrão, a arquitetura do aplicativo é dividida em 3 níveis:





  • Inscrição;





  • Ambiente de tempo de execução (RTE);





  • Software básico.





A ideia principal da norma é dividir o sistema em componentes, bem como definir os níveis de responsabilidade para cada um dos níveis. Ao mesmo tempo, eles tentam principalmente tornar o aplicativo independente do ferro, para que você possa transferir o software sem dor de um MC para outro. O sistema é dividido em componentes independentes e eles interagem entre si usando o RTE. Isso permite que você teste cada componente separadamente e alcance quase 100% de cobertura de código com testes.





Você pode ler mais sobre o padrão aqui .





De acordo com a norma, os componentes podem ter os seguintes componentes:





  • Portas para comunicação entre si;





  • Funções chamadas em eventos de RTE (runnables);





  • – Calibration Data (CData);





  • – Per Instance Memory (PIM);





  • runnables – Inter Runnable Variable (IRV).





runnables CData, PIM, IRV RTE.





. , , . : sender-receiver, client-server.





  • Sender – ;





  • Receiver – ;





  • Server – ;





  • Client – .





SWC1 SWC2, SWC1.





.





AUTOSAR GUI Editor

, , . . , , arxml. :





  • ;





  • client-server sender-receiver ;





  • . ;





  • (struct), ;





  • ;





  • , , write read , server ;





  • (Multiple instantiation);





  • PIM CData , PIM CData;





  • runnable , ;





  • runnables ;





  • RTE , ;





  • ;





  • test environment ;





  • runnables;





  • .





:





  • , Main .





  • - ;





  • FreeRTOS, , , , FreeRTOS . git .





.





, Main. , , .





, , insert.





, , .





, definition, , , definition (drag and drop). , . , , Multiple instantiation. runnables, , PIM CData.





Um exemplo de projeto simples com 4 componentes.
4 .

, , , defenition , .





init values PIM CData Component properties .





, .   Insert->Connection , . , , . , , .





,





-





-





, , .





.





Runnables management, System-> Runnables order. , , runnables .





Crie e edite tarefas do planejador.
.
Distribuição de executáveis ​​por tarefa do planejador.
runnables .

Stack size in bytes . , ( git ) , RTOS .





RTE

RTE , . System->Check errors.





, RTE Project Settings. (Project->Settings…). , .





, , .





, , Project->Generate RTE RTE . , RTE RteSkeleton RTE.





STM32CubeIDE

STM32CubeIDE, , , runnables, Data .





STM32CubeIDE , .. . , , :





  1. Components





  2. , , .





  3. Includes   include , RTE.





4.    Source Location Components RTE





5.  main.c  :







#include "Rte_Task_Scheduler.h"

.





6.   stm32f4xx_it.c /* USER CODE BEGIN Includes */ /* USER CODE END Includes */ :

#include "Rte_Task_Scheduler.h"





SysTick_Handler.





7.  .





github.





, AGE , – RTE, .





Se o programa interessar a alguém, no próximo artigo contarei como fazer testes para componentes.





Conclusão

Este editor me permitiu tornar a arquitetura do meu aplicativo STM32 mais visual e flexível. Se for necessário escrever qualquer componente carregado matematicamente, agora posso testá-lo sem dor no Eclipse e só então implementá-lo facilmente em um projeto no STM32. Além disso, o fluxo de dados de um componente para outro tornou-se claramente visível, o que torna mais fácil e rápido encontrar as fontes de problemas no projeto, caso ocorram.





Link para o AUTOSAR Gui Editor.





Link para o projeto. R








All Articles