ATELIER CAP’TRONIC : FreeRTOS sur Architecture ARM
Pour connaitre les prochaines sessions de formation sur Logiciel embarque et programmation cliquez ici.
Cet atelier vous propose de mettre en œuvre FreeRTOS sur architecture ARM. Après une partie théorique sur la cible utilisée (STM32), vous suivrez les différentes étapes nécessaires à la mise en œuvre de FreeRTOS sur la carte de développement. L’objectif à la fin de la formation sera de porter une application initialement conçue sans OS vers FreeRTOS.
Le monde du temps réel a des contraintes de performance, d’optimisation et de portabilité de plus en plus forte fortes. FreeRTOS est une des solutions proposées par l’écosystème open source.
Porté sur plus d’une dizaine d’architectures différentes, FreeRTOS propose un OS temps réel performant, facile d’utilisation, d’empreinte mémoire faible et robuste.
Objectifs
Comprendre les interactions entre le STM32 et un RTOS. Porter une application sans OS sur FreeRTOS.
Public
Ce cours s’adresse aux Ingénieurs et Techniciens qui souhaitent acquérir les méthodes et les bonnes pratiques liées au développement sur un système embarqué à base de RTOS.
Pré-requis
Connaissances en langage C
Programme
Première Journée
Description du STM32
• Aperçu sur le cœur ARM
• Mode processeur
• Registre du cœur (NVIC, Systick…)
Exercices autour de la librairie CMSIS sur carte d’évaluation
• Mise en place des outils de développement et de débogue KEIL MDK-ARM
• Découverte de la librairie CMSIS de ST
• Choix d’un ou deux TPs d’un commun accord (par exemple : GPIO/EXTI, Mise en place du Systick)
Logistique et matériel
Venir avec un PC sous Windows XP minimun avec les droits administrateurs pour installation des logiciels
Vérifier que le PC à 2 ports USB disponibles
Deuxième et troisième journées
Bases théoriques sur RTOS
• Notions de base sur les OS
• Le temps réel
• Les tâches et leurs états
• Gestion du temps dans l’OS
• Le scheduler et les différents algorithmes
Aperçu des APIs d’un RTOS
• Exemple du RTOS FreeRTOS
Exercices pratiques autour de l’OS
• Contrôle des tâches
• Comparaison des algorithmes round robin, préemptif, coopératif
• Déclencher une tâche avec des événements
• Leurs utilités, protection par mutex
• Gestion d’une file d’attente par sémaphores
• Synchronisation de plusieurs tâches
• Gestion d’une pile de messages d’erreurs
• Echange de données entre tâches asynchrones
Etude de cas
• Portage d’une application conçue initialement sans RTOS
• Discussion sur la mise en place des différentes APIs de l’OS