Un ordinateur que personne ne regarde
Un système embarqué est un petit ordinateur enfermé dans un équipement pour y tenir un seul rôle : un compteur qui mesure, un automate qui pilote une ligne, un boîtier qui surveille une cuve. Il n'a ni clavier ni personne devant lui. Il démarre seul et doit tenir des années, souvent avec moins de mémoire qu'une seule photo sur votre téléphone.
Le firmware, c'est le logiciel logé là-dedans. Il lit les capteurs, commande les moteurs et les relais, surveille ses propres erreurs. Écrire pour une telle puce ne ressemble pas à écrire une application, parce que chaque octet est une décision et qu'une fonction de plus peut prendre la place d'une mesure à conserver. Et quand le programme se bloque, personne n'est là pour redémarrer la machine : il faut avoir prévu dans le code comment elle se relève. Nous aimons ce travail pour cette exigence. L'IoT, ou Internet des objets, ajoute un réseau par-dessus, pour suivre, configurer et mettre à jour ces équipements à distance.
Pour ce firmware, nous proposons d'abord le C++ embarqué, et c'est un choix raisonné. Il laisse décider précisément de ce qui occupe la mémoire et du moment où le code s'exécute, il existe pour la plupart des microcontrôleurs, et il permet de faire évoluer le code déjà en place au lieu de repartir de zéro. Rust le complète quand il apporte quelque chose, par exemple pour un composant neuf exposé au réseau, si la puce retenue s'y prête.
Une limite, dite franchement. Codetics écrit le logiciel. Le dessin des cartes électroniques, l'électronique de puissance, les fonctions de sécurité des machines et la certification sont d'autres métiers, avec d'autres responsabilités : ils demandent un périmètre distinct et des partenaires spécialisés. Nous préférons vous le dire au premier échange plutôt que de le découvrir ensemble au milieu du projet.