Programmation
Safety and security
Les fondeurs et les projets open source livrent déjà l'essentiel des fondations : les chaînes de secure boot (TF-A/U-Boot, HAB/AHAB, SBSFU/TF-M), l'isolation par TrustZone-M et OP-TEE, et les mécanismes de durcissement Linux comme SELinux, AppArmor, dm-verity, IMA, les namespaces et seccomp. Côté sûreté, les règles de codage MISRA et CERT, l'analyse statique, les AMDEC, les watchdogs et les CRC ou ECC détectent les défauts au plus tôt.
Nos formations parcourent tout l'écosystème : analyse de risque et de menace, SBOM et VEX, traitement des vulnérabilités, gestion des clés, mise à jour sécurisée et rollback, durcissement Linux et MCU, partitionnement TrustZone, et cycle de vie de la sûreté avec les preuves attendues par un évaluateur.
Langages
Nos formations couvrent le C pour microcontrôleurs, le C++ classique et moderne jusqu'à C++20, OpenCL pour le calcul parallèle, Python, et Java pour le développement industriel et Android. Chacune part des contraintes de l'embarqué : mémoire limitée, allocation dynamique proscrite, code qui doit rester lisible.
Ce sont les détails qui occupent les formations : les comportements indéfinis et ce que l'optimiseur a le droit d'en faire, les règles d'alignement et d'aliasing, la sémantique de déplacement et le RAII sans allocation dynamique, le coût des templates à la compilation face à celui à l'exécution, et les règles MISRA qui existent parce que ces pièges sont réels.
Méthodes
UML fournit une notation commune pour l'architecture et le comportement temps réel. La sûreté y ajoute les méthodes attendues par la certification : analyse des dangers, AMDEC et arbres de défaillance, traçabilité de l'exigence au test, et les preuves qu'un évaluateur réclame. Aucune ne remplace le jugement d'ingénieur, toutes le rendent inspectable.
Nos formations couvrent l'architecture logicielle avec UML, la modélisation temps réel, et le cycle de vie de la sûreté des systèmes critiques, avec les normes qui l'encadrent et les documents qu'un projet doit produire.
Temps réel
Nos formations couvrent les noyaux réellement utilisés : FreeRTOS, Zephyr, Eclipse ThreadX et RT-Thread, ainsi que la programmation multicœur, AUTOSAR et OSEK/VDX pour l'automobile, et les écosystèmes NXP et Nordic. Les travaux pratiques se font sur cartes réelles ou sur cibles simulées.
Les défaillances sont toujours les mêmes : l'inversion de priorité, quand une tâche de faible priorité détient un mutex dont une tâche prioritaire a besoin, des piles dimensionnées à l'estime jusqu'à ce que l'une déborde sur sa voisine, des sections critiques assez longues pour manquer une échéance, et des ISR qui font le travail d'une tâche. Les formations en font le sujet, pas une note de bas de page.
FPGA
Nos formations couvrent le VHDL, des bases du langage à la conception avancée, les plateformes AMD Zynq et Altera Cyclone-V, les cœurs Nios et Microblaze, ainsi que le Microchip SmartFusion2. Les travaux pratiques se déroulent sur cartes réelles, avec les outils des fondeurs.
Sous le langage se trouve ce qui décide si une conception tient le timing : franchissement de domaines d'horloge et métastabilité, contraintes de synthèse, partage des ressources entre logique et blocs DSP, et lecture d'un rapport de placement-routage pour trouver où se situe réellement le chemin critique. Les formations couvrent VHDL et SystemVerilog, la vérification UVM, et les flux Vivado et Quartus.