Éditeur mini AUTOSAR gratuit pour microcontrôleurs

Dans cet article, je souhaite partager avec vous un programme que j'ai écrit pour développer des logiciels pour microcontrôleurs selon un standard proche d'AUTOSAR.





En 2018, j'ai été invité à travailler chez EPAM Biélorussie sur un projet d'externalisation pour développer un logiciel pour crémaillères de direction. J'ai accepté avec grand plaisir et je suis allé vivre et travailler en Biélorussie.





Sur ce projet, je me suis familiarisé avec le standard de développement logiciel dans l'industrie automobile - AUTOSAR .





Quelques mots sur AUTOSAR

Selon la norme, l'architecture de l'application est divisée en 3 niveaux:





  • Application;





  • Environnement d'exĂ©cution (RTE);





  • Logiciel de base.





L'idée principale de la norme est de diviser le système en composants, ainsi que de définir les niveaux de responsabilité pour chacun des niveaux. Dans le même temps, ils essaient principalement de rendre l'application indépendante du fer, afin que vous puissiez transférer sans douleur des logiciels d'un MC à un autre. Le système est divisé en composants indépendants et ils interagissent les uns avec les autres à l'aide de RTE. Cela vous permet de tester chaque composant séparément et d'atteindre une couverture de code de presque 100% avec des tests.





Vous pouvez en savoir plus sur la norme ici .





Selon la norme, les composants peuvent avoir les composants suivants:





  • Ports pour communiquer entre eux;





  • Fonctions appelĂ©es sur des Ă©vĂ©nements de RTE (exĂ©cutables);





  • – 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.





Un exemple de projet simple avec 4 composants.
4 .

, , , defenition , .





init values PIM CData Component properties .





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





,





-





-





, , .





.





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





Créez et modifiez les tâches du planificateur.
.
Répartition des exécutables par tâche du planificateur.
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, .





Si le programme intéresse quelqu'un, dans le prochain article je vous dirai comment faire des tests pour les composants.





Conclusion

Cet éditeur m'a permis de rendre l'architecture de mon application pour STM32 plus visuelle et flexible. S'il est nécessaire d'écrire un composant chargé mathématiquement, je peux maintenant le tester sans douleur dans Eclipse et seulement ensuite l'implémenter facilement dans un projet dans STM32. De plus, le flux de données d'un composant à un autre est devenu clairement visible, ce qui permet de trouver facilement et rapidement les sources des problèmes dans le projet s'ils surviennent.





Lien vers l'Ă©diteur AUTOSAR Gui.





Lien vers le projet. R








All Articles