Avec SW4Linux, Ac6 simplifie de A à Z le développement de l’intégralité du logiciel d’un système embarqué Linux

SW4Linux

Présenté pour la première fois dans une version bêta sur le stand de STMicroelectronics lors d’Embedded World 2019, l’environnement de développement intégré (IDE) System Workbench for Linux (SW4Linux) de la société française Ac6, bien connue pour ses services d’expertise et ses formations dans les domaines de l’embarqué, est aujourd’hui disponible dans une version « industrielle ». ...

On rappellera que SW4Linux est décrit comme le premier environnement à intégrer au sein d’un seul IDE l’ensemble du processus d’élaboration du logiciel d’un système embarqué Linux. Du portage et de la configuration du noyau sur une carte donnée, jusqu’au développement, au test et à la validation de l’application, en passant par la création et le débogage des pilotes logiciels et l’intégration de packages applicatifs, généralement open source, au sein de l’image système.

Cette caractéristique, selon Ac6, permet aux développeurs non spécialistes de Linux embarqué de créer leurs propres plates-formes adaptées à leurs besoins spécifiques, le tout sous Eclipse et au travers d’une interface utilisateur conviviale qui guide le développeur sur chaque option : choix des packages, compilation, configuration, gestion des images finales prêtes à être embarquées, etc. Le même environnement permet aussi de développer des applications pour les intégrer dans la plate-forme.
 
« Depuis l’année dernière, le plus gros de notre travail a été la prise en charge de tous les packages Yocto, désormais classés dans des bibliothèques au sein de SW4Linux, indique Bernard Dautrevaux, cofondateur et directeur technique d’Ac6. Le développeur n’a plus alors qu’à intégrer ceux dont il a besoin et il lui est très facile d’en enlever ou d’en rajouter selon la configuration choisie au final. L’environnement SW4Linux se charge aussi de toute l’opération de build qui se fait automatiquement et, dès lors, ne dure que le temps strictement nécessaire. » Selon la société française, SW4Linux se distingue ainsi clairement de la méthodologie de développement open source Yocto qui, d’une part, nécessite une connaissance approfondie de la palette d’outils permettant de générer une distribution Linux pour l’embarqué et, d’autre part, impose la maîtrise d’un savoir-faire difficile à conserver sur le long terme. En corollaire, SW4Linux offre la possibilité à un équipementier de recréer à l’identique une plate-forme livrée sur un projet donné ou de procéder aisément à une correction d’anomalies pour un client particulier.
 
« L’environnement SW4Linux, qui a été livré à ses premiers utilisateurs, représente un investissement de 18 hommes-années pour Ac6, précise William Kazuro, le fondateur et dirigeant de la firme française. Notre objectif est désormais d’entrer de plain-pied sur le marché des PME-PMI d’ici à la fin de l’année et de confirmer ainsi notre crédibilité sur un marché qui est à la fois difficile et très concurrentiel. Nous voulons aussi diminuer de manière drastique les temps de formation à ce type d’outils. » La société française en veut pour preuve une récente démonstration faite dans le cadre d’un développement asymétrique sur un processeur hétérogène, en l’occurrence le STM32MP1 de STMicroelectronics, qui associe un double cœur de microprocesseur Arm Cortex-A7 (pour l’exécution d’une plate-forme Linux) et un cœur de microcontrôleur Arm Cortex-M4 (pour les tâches temps réel).
 
« Pour cette démonstration de commande de la vitesse d’un moteur par le geste (NDLR : en fait le nombre de doigts tendus, voir photo ci-contre), la plate-forme a été développée via un IDE unifié associant SWLinux et l’IDE pour microcontrôleur STM32CubeIDE, précise William Kazuro. Il a fallu seulement cinq jours pour un apprenti développeur en alternance pour construire la plate-forme Linux et développer l’application avec des modules GStreamer, OpenCV et Qt. » Précisons ici qu’Ac6 travaille actuellement avec l’université de Poitiers à la mise au point d’un plug-in « temps réel » pour SW4Linux qui permettra de mesurer le temps d’exécution d’une fonction sur Linux, FreeRTOS ou tournant directement sur le silicium (bare-metal).
 
Autre projet important sur lequel la société française a travaillé assidûment ces derniers mois et qui est aujourd’hui en phase de finalisation : la prise en charge de la sécurité. « L’idée est que l’utilisateur puisse créer et déployer simplement des images Linux hautement sécurisées avec l’environnement SW4Linux, détaille Bernard Dautrevaux. Il n’aura qu’à choisir, en fonction du processeur retenu et donc de l’infrastructure matérielle mise en place par le fournisseur de semi-conducteurs, la ou les fonctions de sécurité voulues : boot sécurisé, génération de clés, création de certificats signés, gestion des signatures, mises à jour sécurisées over-the-air, etc. » Dans ce cadre, Ac6 a annoncé en avril dernier un accord avec l’américain wolfSSL, éditeur bien connu de protocoles, de bibliothèques et d’outils de sécurité (wolfBoot, wolfSSL, wolfCrypt, woldCryptFIPS, wolfTPM, etc.). wolfSSL a notamment été la première société à développer à la fois des versions professionnelles et open source du protocole TLS 1.3 (Transport Layer Security).
 
Ac6 a également porté ses efforts sur la prise en charge de l’écriture de pilotes logiciels, un domaine qui reste encore l’affaire de spécialistes. « Avec la montée en puissance des FPGA dotés de cœurs de processeur Arm, de plus en plus de sociétés utilisent ces circuits pour intégrer dans la logique programmable des périphériques spécifiques à leur métier, détaille Bernard Dautrevaux. Si la plate-forme Linux tourne sur les Cortex-A, les pilotes Linux doivent accéder aux périphériques bare-metal additionnels et il faut donc intégrer ces pilotes dans la structure globale de Linux, ce qui peut s'avérer complexe. Nous avons simplifié le travail pour le développeur en rationalisant et en automatisant la partie opérationnelle du processus – il lui suffira de répondre à quelques questions (quel est le bus utilisé ? quelle est l’interface fournie à l’utilisateur ? etc.) –, la partie fonctionnelle, qui lui est propre, restant uniquement à sa charge. » Ac6 prévoit de fournir cette fonctionnalité dans une première version au cours du dernier trimestre 2020.