Systèmes d'Exploitation
Android
ac6-training proposes trainings on the porting of the operating system on your board and its tailoring to your specific needs, as well as creating embedded applications running on the Android system.
Linux
ac6-formation vous propose des formations vous permettant de réaliser des applications sur Linux embarqué, mais aussi d'adapter ce système d'exploitation si le besoin s'en fait sentir.
RTOS
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é.
Zephyr
Qu'est-ce que Zephyr ?
Zephyr est un RTOS open source spécialement conçu pour les systèmes embarqués et l'IoT. S'inspirant des points forts de Linux et adapté aux microcontrôleurs, il permet d'écrire des applications portables sur différentes plateformes de divers vendeurs grâce à son build system, Kconfig et devicetree.
De nombreux drivers intégrés accélèrent le développement en assurant la prise en charge immédiate de divers périphériques. Grâce à Zephyr, les développeurs peuvent se concentrer sur la création d'applications, sans se préoccuper du portage ou de la réécriture du code bas niveau.
Nos formations Zephyr permettent de maîtriser l'écosystème, notamment le device tree, le device driver model et tout ce qui différencie Zephyr des autres systèmes d'exploitation temps réel.
Drivers
Nous proposons des cours adaptés aux spécificités du développement de drivers en environnement embarqué, avec des exercices utilisant, chaque fois que nécessaire, des environnement de développement croisés et des cartes cibles industrielles.