RTOS
Real-Time Operating Systems
Sur un microcontrôleur, une boucle principale suffit tant que les traitements restent courts et que les échéances sont larges. Dès qu'une tâche longue côtoie une réaction à tenir en quelques millisecondes, il faut arbitrer. Un RTOS apporte cet arbitrage : ordonnancement préemptif par priorités, primitives de synchronisation, gestion du temps. En contrepartie il introduit ses propres pièges, l'inversion de priorité, les dépassements de pile, les sections critiques trop longues, qui se manifestent rarement en développement et presque toujours en production.
Choisir son noyau
Trois noyaux se partagent l'essentiel de l'embarqué, et ils ne répondent pas à la même question.
FreeRTOS est un noyau. Quelques milliers de lignes, un ordonnanceur, des files, des sémaphores. On l'ajoute à un projet existant sans rien renverser, et l'empreinte mémoire reste de l'ordre de la dizaine de kilo-octets. C'est le choix naturel quand le matériel est maîtrisé et que le besoin se limite au multitâche.
Zephyr est un environnement complet : noyau, pilotes, pile réseau, description matérielle par Devicetree, configuration par Kconfig, gestion multi-dépôts par West. L'apprentissage est plus long, mais le portage d'une carte à une autre cesse d'être un projet en soi. C'est le choix qui s'impose quand le produit doit vivre plusieurs années sur plusieurs cibles.
ThreadX, passé sous licence open source sous le nom Eclipse ThreadX, occupe une position intermédiaire : un noyau compact, certifiable, accompagné de piles réseau et fichiers. On le rencontre surtout là où la certification pèse dans le choix.
Nos formations
Programmation temps réel avec FreeRTOS (RT3), trois jours, part du noyau : ordonnancement, files, sémaphores, mutex, et surtout les erreurs de conception qui produisent des blocages intermittents.
Programmation avec Zephyr RTOS (RT5), cinq jours, couvre l'écosystème entier, du build system et de West à la configuration par Devicetree et Kconfig, jusqu'à l'écriture de pilotes.
West, MCUXpresso SDK et Kconfig (RTW), deux jours, porte sur la gestion de projets multi-dépôts avec West et sur la structure du SDK MCUXpresso de NXP.
STM32 + FreeRTOS + LwIP (STG), cinq jours, traite le cas complet : un STM32, un noyau temps réel et une pile TCP/IP qui doivent cohabiter sans se voler le temps processeur.
Real Time Programming with Eclipse ThreadX (RT6), trois jours, applique les mêmes principes au noyau ThreadX, anciennement Azure RTOS.
L'Internet des objets sur microcontrôleurs (IOT1), trois jours, aborde le cas particulier des dispositifs à très faible consommation, où l'ordonnancement se juge autant en microampères qu'en millisecondes.
Les travaux pratiques occupent une part importante de chaque session. En présentiel ils se déroulent sur cartes réelles. À distance, selon le cours, sur du matériel accessible à distance ou sur les outils de simulation que nous développons, ce qui permet de travailler sur une cible que l'on n'a pas sous la main. Un ordonnanceur ne se comprend qu'en observant ce qu'il fait d'un système chargé.