Avec Pigweed, Google cherche à simplifier la programmation des microcontrôleurs 32 bits

[EDITION ABONNES] Sous le nom de Pigweed (*), les bibliothèques logicielles de Google récemment publiées sur la plate-forme GitHub (le code source est disponible sous licence Apache 2.0) ont pour ambition de rationaliser le développement de logiciels embarqués sur des microcontrôleurs 32 bits.... Google, qui indique que Pigweed est pour l'instant expérimental et n’est donc pas utilisable à l’heure actuelle en production, souhaite à travers cette initiative que le développement de logiciels sur microcontrôleurs soit presque aussi simple que le développement Web. L'initative cible les microcontrôleurs 32 bits sans MMU comme les STM32L452 de STMicroelectronics ou les nRF52832 de Nordic Semiconductor.

Dans sa présentation de Pigweed, Google indique de façon simplifiée (voire simpliste) que dans le cas de la programmation d’un microcontrôleur, il est nécessaire d’utiliser une chaîne d'outils croisée, un système de mise au point comme buildroot ou Yocto Project, des outils de débogage, etc. et ce pour les étapes de création de code, de flashage de ce code sur la carte puis de son exécution sur la cible. Alors qu’avec le développement Web, on édite un fichier et on l’exécute directement dans un navigateur Web

La société a ainsi publié une bibliothèque en open source de modules qui sont en fait une collection de technologies, d’outils, de code… censés rationaliser le processus de développement sur microcontrôleurs 32 bits. Malgré le peu d’informations communiquées par Google, on voit que Pigweed vise à aider à toutes les étapes d’un processus de développement, y compris pour la configuration des outils de programmation (l’IDE), le développement de programmes et la génération de code.

Concrétement, le programme d'installation consiste à exécuter un script d'amorçage qui installe automatiquement des outils comme le langage Python 3.8, le compilateur de bas niveau en open source clang et un compilateur Arm, le tout dans un environnement virtuel.

Parmi les modules publiés, pw_watch, par exemple, a pour fonction de détecter automatiquement des modifications de fichiers, de compiler le code et d’exécuter des tests sur la cible. Ce qui signifie dans ce cas que le développeur, une fois qu’il a modifié son code initial, n’a plus rien à faire. CQFD.

(*) Pigweed est le nom anglais de l'amarante, une plante verte annuelle à croissance rapide