C'est à l'occasion de la manifestation ARM TechCon qui se tient du 24 au 26 octobre 2017 à Santa Clara (Californie) que la société franco-américaine AdaCore a annoncé les gagnants de son second concours de programmation annuel baptisé "Make with Ada" pour les projets embarqués. ...L'objectif affiché de cette compétition est d'explorer comment Ada (langage à typage fort, doté de propriétés de vérification mises en œuvre lors de la compilation) et Spark peuvent améliorer de façon significative la qualité du code développé pour des systèmes embarqués. Et ce sans avoir besoin, contrairement aux idées reçues, d’un apprentissage poussé pour les développeurs peu familiarisés avec ces langages. A noter que Spark est un sous-ensemble d’Ada qui garantit, en s'appuyant sur des assertions mathématiques, que les propriétés d'un programme sont respectées, comme l’absence d’erreurs d’exécution telles que le débordement de la mémoire tampon.
Cette année, le premier prix (doté d'une gratification de 5 000 euros) a été décerné au développeur suédois Jonas Attertun pour son projet Ada Motorcontrol qui est une plate-forme logicielle pour le développement d'un système de commande de moteur à courant continu sans balai (BLDC/PMSM). Pour ce projet, Jonas Attertun a utilisé une carte open source personnalisée, équipée d’un microprocesseur STM32F446 de STMicrolectronics, d’un algorithme de commande vectorielle et d’une fonction d’enregistrement pour simplifier le développement et permettre aux utilisateurs de visualiser le déroulement des opérations (voir ci-dessous l'architecture du logiciel proposé).
Le second prix (2 000 euros) a été décerné au Californien German Rivera qui avait déjà remporté le second prix l’année dernière. Cette année son projet portait sur une montre intelligente pour laquelle il a développé un logiciel embarqué spécifique. Ce « couteau suisse » logiciel a été écrit en Ada 2012 pour être implanté sur deux microcontrôleurs Kinetis de NXP.
Enfin, le troisième prix (1 000 euros) a été attribué à l'Equatorien Manuel Iglesias Abbatemarco pour son projet Ada IoT Stack. Celui-ci a permis l'ajout de plusieurs composants logiciels à la bibliothèque Ada Drivers Library pour la prise en charge d'applications IoT, fondés sur l'implantation de la technologie existante LwIP (Lightweight IP), une pile TCP/IP en open source utilisée pour le développement de systèmes embarqués, et présente notamment dans les dispositifs embarqués constrruits autour des microcontrôleurs STM32 dotés d'un lien Ethernet.
« Ce concours m’a permis de montrer que le langage Ada peut être utilisé avec succès pour des projets "bare-metal" nécessitant une exécution rapide, commente le lauréat du premier prix, Jonas Attertun. Les fonctionnalités proposées par Ada ont rendu mon projet plus facile à comprendre par rapport à d’autres réalisations en C. Et la combinaison d’une lisibilité du design accrue, alliée à la rigueur d’Ada, ont rendu le logiciel résultant plus sûr. »
D'un point de vue pratique, ce concours s’est déroulé du 15 mai au 15 septembre 2017 et a attiré 35 projets. Les experts en systèmes embarqués Jack Ganssle (The Ganssle Group), Bill Wong (Penton Media), Rich Nass (Opensystems Media), Stéphane Carrez (Bouygues Telecom) et Cyrille Comar (président d’AdaCore) ont constitué le panel des juges du concours.
A noter qu'AdaCore propose en parallèle une formation en ligne gratuite accessible sur AdaCore U (u.adacore.com) ainsi que des ressources accessibles aux développeurs de logiciels libres, aux étudiants et autres amateurs, et disponibles dans le dépôt github (github.com/adacore) et sur un site libre (libre.adacore.com).
Quant au détail des projets des vainqueurs de cette édition 2017, ils sont accessibles ici.