Electronique - Eclipse dans tous ses états pour l'embarqué




Les microcontrôleurs 32 bits sont sous le charme des coeurs Arm
Les multimètres de table
Autosar et UML
Le marché classé de l'électronique






Abréviations, expression inédite, évolution du vocabulaire, le lexique d'Electronique International vous explique l'électronique et son environnement !

> tout le lexique

Eclipse dans tous ses états pour l'embarqué François Gauthier
[ ENVIRONNEMENT DE DÉVELOPPEMENT ]
Eclipse dans tous ses états pour l'embarqué
Depuis la création de la fondation Eclipse, le succès de la plate-forme de développement éponyme, disponible en Open Source, ne se dément pas. Aujourd'hui, des travaux d'importance intéressent au premier chef le secteur des applications embarquées. En particulier ceux menés au sein du projet DSDP, dont les premières moutures sont d'ores et déjà disponibles.

François Gauthier , Electronique Mensuel, le 19/01/2007 à 08h00

écrire à l'auteur de l'article imprimer l'article
envoyer par mail télécharger le PDF de l'article

Le projet Eclipse trouve son origine au sein de la société IBM, qui a décidé en 2001 de mettre à disposition de la communauté Open Source l'ébauche d'une plate-forme de développement ouverte, entièrement écrite en Java, capable d'intégrer des extensions adaptées à diverses activités (débogage, modélisation, interfaces graphiques...). L'objectif étant de créer un environnement de développement intégré polyvalent, extensible, capable de travailler avec n'importe quel langage de programmation. Et ce grâce à une architecture basée sur la notion de plug-in, module fonctionnel qui se rattache à la plate-forme via un mécanisme appelé point d'extension. La base de cet environnement est constituée par l'Eclipse platform, qui comprend : la Platform runtime, chargée du démarrage de l'environnement et de la gestion des plug-in ; SWT, la librairie graphique de base de l'environnement ; JFace, une librairie graphique de plus haut niveau ; et enfin le Workbench, couche graphique qui permet de manipuler des composants (sous la forme de vues, d'éditeurs, de perspectives, etc.). L'ensemble des outils de développement (Java, C/C++...), de débogage, de tests, développés au sein de la fondation ou bien par des tierces parties, est ensuite ajouté en tant que plug-in (figure 1).

A l'époque, IBM avait choisi de créer un consortium, baptisé Eclipse, en partenariat avec sept autres sociétés (dont Borland, QNX, RedHat) afin de gérer le développement du projet. Mais, devant le succès rencontré par celui-ci et en raison du poids jugé trop important pris par IBM dans la structure par les nombreuses sociétés et développeurs qui se sont agrégés à l'entreprise, le consortium Eclipse s'est transformé en avril 2004 en une fondation, association à but non lucratif de droit américain. Cette décision marque le véritable décollage d'Eclipse. Car, à partir de cette date, les structures fonctionnelles de la fondation, régies par des règles formalisées, ont permis d'accueillir un très grand nombre de contributeurs qui sont à la base du foisonnement des projets au sein de la fondation. Aujourd'hui, Eclipse rassemble quelque 150 membres, dont 18 membres stratégiques (parmi lesquels on trouve Intel, Nokia, IBM, Motorola et Wind River) et 107 membres contributeurs (add in providers, parmi lesquels on trouve par exemple STMicroelectronics, Arm, EADS, Thales, Ericsson, Symbian, Mentor Graphics, Enea Embedded Systems, Virtual Logix (ex Jaluna), MontaVista, Telelogic, ainsi que les français TNI Software et Trango Systems).

L'intérêt de l'ensemble de ces sociétés vis-à-vis de la structure logicielle d'Eclipse a permis l'éclosion depuis 2004 d'un nombre élevé de développements logiciels au sein de la fondation. A l'heure actuelle, on compte ainsi neuf projets principaux découpés eux-mêmes en sous-projets (figure 2). Citons par exemple : le projet WTP (Web tools platform) concernant les outils de développement d'applications web et J2EE, Birt (Business intelligence and reporting tools) dédié à la création et la génération de rapports, ou encore DTP (Data tools platform) centré sur les outils de manipulation de données. Parmi ces projets, deux d'entre eux, très actifs, intéressent directement les applications embarquées : il s'agit des projets CDT et DSDP. Ce n'est pas une surprise. Car, selon une étude d'EDC, publiée par la fondation Eclipse, si deux tiers des utilisateurs d'outils basés sur Eclipse travaillent aujourd'hui dans le secteur de l'informatique générale (applications sur les serveurs principalement), c'est le domaine des outils logiciels dédiés aux systèmes embarqués qui devrait bénéficier de la plus forte progression dans les deux prochaines années. De son côté, VDC estime, dans une étude récente, qu'à l'heure actuelle 17 % des développeurs d'applications embarquées utilisent un outil basé sur Eclipse et qu'ils seront 49 % dans deux ans.

Les éditeurs d'OS temps réel attirés par Eclipse

Il faut dire que très rapidement, dès la publication des premières versions d'Eclipse, les principaux éditeurs d'environnement de développement temps réel se sont intéressés à Eclipse avec toutefois des approches différentes. Ainsi, QNX fut un des premiers à porter son environnement Momentics, dès 2003, sous Eclipse. LynuxWorks a fait de même avec son IDE Luminosity et, plus récemment, Enea Embedded vient de finaliser l'intégration de son outil d'analyse au niveau système Illuminator, renommé pour l'occasion Optima, sous Eclipse 3.1. De son côté, Mentor Graphics, avec sa plate-forme Nucleus Edge, est allé plus loin en construisant celle-ci avec des composants logiciels conçus comme des plug-in Eclipse. Wind River, très impliqué dans la fondation Eclipse (c'est l'un des membres stratégiques), propose quant à lui son environnement Workbench 2.2 sous Eclipse, en adaptant le code Open Source de la plate-forme aux contraintes spécifiques de l'embarqué. A contrario, l'approche de Green Hills est plus prudente. En effet, si la société procure la possibilité de travailler sous Eclipse en dotant son environnement Multi d'un point de connexion à la version 3.1 d'Eclipse, sans y apporter aucune modification, elle considère que l'intégration des outils de compilation, débogage, analyse, simulation, profiling... de son propre environnement est nettement plus efficace pour l'instant que la plate-forme Eclipse. Enfin, MontaVista, qui avait déjà intégré son environnement DevRocket sous Eclipse moyennant l'adaptation de certains plug-in, vient d'annoncer que sa nouvelle plate-forme (nom de code Tsuki) sera cette fois-ci entièrement compatible avec la version 3.1 d'Eclipse, assurant une meilleure ouverture vers des outils tiers basés eux aussi sur Eclipse.

Ces différentes approches ont pour conséquence de provoquer des divergences, voire des incompatibilités entre les diverses implantations d'Eclipse, une situation qui va à l'encontre du caractère Open Source de la plate-forme. Néanmoins, ce type de situation, identique à celle que l'on connaît avec les différentes distributions de Linux, ne devrait pas freiner la marche en avant d'Eclipse. Car, pour ces éditeurs qui évoluent dans un univers très concurrentiel, il devient impératif de concentrer au maximum leurs forces de développement sur leurs points forts, et non sur des caractéristiques générales que l'on trouve sur tous les outils. A ce sujet, Mike Milinkovich, président de la fondation Eclipse, déclarait récemment, lors d'un forum Eclipse organisé par la société française TNI Software, « qu'environ 80 % du code des environnements logiciels utilisés actuellement par les développeurs n'est plus différenciateur d'un outil du commerce à un autre ».

CDT, pour programmer en C/C++ sous Eclipse

Parmi les initiatives destinées au secteur des applications embarquées, le projet CDT (C/C++ development tools) fait sans conteste figure de pionnier. Initié par l'éditeur de système d'exploitation temps réel QNX, dès 2002, ce projet désormais mature a pour objectif de fournir un module d'extension à l'environnement Eclipse pour les développeurs d'applications en C/C++. Ce fut d'ailleurs le premier plug-in d'Eclipse dédié à un autre langage que Java. Et, à l'heure actuelle, c'est le plug-in qui bénéficie du nombre le plus élevé de téléchargements sur le site Eclipse : plus de 350 000, selon les responsables du projet. A ce jour, une vingtaine d'outils commerciaux exploitent et fournissent ce plug-in dans leur environnement.

La version 3.1 du projet CDT fait partie de Callisto, la dernière mise à disposition d'Eclipse accompagnée d'un certain nombre de projets matures (encadré, page suivante). Dans cette version de CDT, qui offre comme les précédentes un éditeur, un débogueur (qui s'appuie la chaîne d'outils GNU), un générateur de makefile, un parseur... on trouve une nouvelle architecture d'indexage des fichiers C/C++ et un support plus large des différentes variantes Open Source de GDB/MI (GNU debugger project/machine interface), protocole qui permet à des outils externes de communiquer avec GDB.

Les membres contributeurs du projet CDT, au nombre desquels on trouve en particulier Altera, Arm, Enea, Freescale, Mentor, MontaVista, Nokia, Tensilica et Wind River, travaillent d'ores et déjà à la version 4.0, qui devrait faire partie de la prochaine version Europa d'Eclipse. Au sein de cette nouvelle version, les utilisateurs bénéficieront « d'un navigateur pour le code source associé à de nouvelles vues, avec la possibilité d'afficher les hiérarchies d'appel entre fonctions », explique Doug Schaefer de QNX, responsable du projet CDT. On trouvera aussi au sein de CDT 4.0 « une nouvelle sémantique des codes de couleur des identifiants, afin de différencier les noms de classe des noms de fonctions dans le but d'améliorer la lisibilité du code, et un mécanisme interne d'appel direct de compilateurs et d'éditeurs de liens (non fourni au sein du projet CDT) sans avoir à générer un " build files " » poursuit Doug Schaefer.

DSDP : un projet dédié aux applications embarquées

Au-delà du projet CDT, le projet DSDP (Device software development platform), initié par Wind River, permet à la plate-forme Eclipse de franchir une étape importante dans son adaptation aux contraintes spécifiques des systèmes embarqués. L'attractivité de ce projet est très importante, puisqu'à ce jour DSDP a attiré plus de quarante contributeurs, parmi lesquels on trouve, outre ceux qui participent au projet CDT, Motorola, Symbian, Texas Instruments ou encore IBM. Historiquement, le projet DSDP a été accepté en juin 2005 par la fondation Eclipse, avec la création de deux sous-projets.

Le premier DD (Device debugging) est dédié à la construction de modèles de débogage, d'API et de vues spécifiques pour les logiciels enfouis. Il s'agit en fait d'améliorer et d'adapter l'interface de débogage générique d'Eclipse et de créer une nouvelle interface, qui pourra être utilisée par la suite soit au sein de la plate-forme Eclipse générique, soit au sein du plug-in CDT. Au delà, un des objectifs du projet Device debugging est « d'améliorer les vues de débogage pour les architectures multicoeurs et multiprocessing, et de créer un modèle suffisamment modulaire (le Debugger service framework) pour faciliter la connexion d'outils de débogage du commerce à la structure Eclipse », précise Doug Gaff, de Wind River, à la tête du projet DSDP au sein d'Eclipse. Pour l'instant, le projet DD est en cours d'élaboration, mais il devrait faire partie, dans sa version 1.0, de la prochaine version Europa d'Eclipse, prévue pour juin 2007 (figure 3).

Le second, dénommé TM (Target management), a pour objectif de créer une architecture (un framework) associée à des modèles de données, pour la configuration et la gestion à distance de systèmes embarqués connectés à des réseaux. Techniquement, la solution s'appuie sur la version Open Source d'IBM, IBM Remote system explorer, qui adresse ce problème. La version 1.0 de Target management, développée grâce aux contributions de Wind River, IBM, MontaVista, PalmSource, Symbian et Tradescape, vient d'être officiellement annoncée, ce qui signifie que l'on peut d'ores et déjà télécharger et tester le code du projet. Cette version du plug-in fonctionne pour des systèmes connectés via TCP/IP, supporte les transferts de données aux protocoles FTP, NFS, SSH et DataStor (protocole propriétaire d'IBM) ainsi que le lancement à distance de GDB dans l'environnement CDT. Elle devrait être disponible dans la prochaine version Europa d'Eclipse.

En janvier 2006, deux nouvelles propositions se sont agrégées au projet DSDP et sont devenues deux sous-projets. Le premier NAB (Native application builder), pris en charge par Fujitsu, a pour ambition de créer un générateur d'interfaces graphique (sous la forme d'un code C/C++) et des librairies graphiques pour les systèmes d'exploitation temps réel Linux, Windows CE et Itron. Il s'agit en quelque sorte de créer en C/C++ l'équivalent de la librairie en Java eSWT. Basé sur la technologie Open Source Wide Studio, populaire au Japon, ce sous-projet n'est pour l'instant pas prévu dans la future version Europa d'Eclipse.

Le second, MTJ (Mobile tools for the Java platform), doit étendre la plate-forme Eclipse aux besoins des développeurs d'applications Java pour équipements mobiles. Géré par Nokia, avec les participations significatives d'IBM et de Sony Ericsson, ce projet d'envergure en cours de maturation (bien que la version 0.7 soit déjà officiellement disponible) a notamment pour objectif d'automatiser le déploiement d'applications Java pour des systèmes mobiles, supportant des configurations de type CLDC (Connected limited device connection) et CDC (Connected device connexion) avec des profils MIDP (Mobile information device profile).

Juillet 2006 marque ensuite une étape importante dans le développement de DSDP. En effet, depuis cette date, le sous-projet eRCP a été versé au sein de DSDP. Il vise à étendre le concept de RCP (Rich client platform) au monde de l'embarqué. Rappelons que RCP est en fait une version de la plate-forme Eclipse dans laquelle toutes les fonctionnalités propres aux outils de développement ont été enlevées (il ne contient que le Workbench générique, les librairies SWT et JFace ainsi que le moteur OSGI ; son empreinte mémoire est d'environ 5 Mo). Cette architecture a donc pour objectif d'équiper des postes informatiques clients pour n'importe quelle application. La version eRCP a pour ambition d'adapter ce concept au monde des systèmes embarqués, en conservant le moteur OSGI de gestion des plug-in, mais en restreignant le nombre de vues gérées par le Workbench (l'espace de travail) et en offrant la possibilité de créer une IHM basée sur des librairies eSWT, qui vont s'adapter aux « widgets » natifs des différentes cibles. En d'autres termes, on construit une seule interface graphique compatible avec les très nombreuses architectures d'affichage des différents terminaux mobiles.

La version 1.0 de ce projet vient d'être annoncée. Elle fonctionne pour les systèmes d'exploitation Windows Mobile 2003/205 et sur les systèmes Nokia Séries 60 et 80. La société toulousaine Anyware Technologies a par exemple prouvé la validité de ce concept en développant un atelier logiciel capable de générer, à partir d'un modèle, aussi bien une application web qu'une application eRCP, embarquée sur des téléphones portables ou des assistants personnels. Une application concrète a été d'ores et déjà réalisée pour un syndicat d'infirmières, offrant la possibilité de récupérer sur un assistant personnel des données issues d'équipements médicaux (électrocardiogramme par exemple) et de les synchroniser en permanence avec un serveur. « Un des apports d'Eclipse, et plus particulièrement d'eRCP, est de fournir ici le mécanisme de mise à jour des pilotes d'une application, une opération transparente pour l'utilisateur, grâce au moteur OSGI installé au sein d'eRCP » , indique David Sciama d'Anyware Technologies. « Ainsi, la collecte des données n'est plus tributaire des évolutions logicielles des équipements médicaux ».

Enfin, signalons que récemment le projet DSDP s'est encore enrichi d'un sixième sous-projet. Il s'agit de TmL (Tools for mobile Linux), une proposition lancée par Motorola. Encore à l'état d'incubation (il n'y a pas de code disponible), ce projet a pour objectif de mettre au point une architecture de développement (un framework) pour les applications développées en C/C++ à destination des terminaux mobiles sous Linux.

Eclipse, un point de ralliement

L'attractivité d'Eclipse, et la très forte activité de développement que le projet génère font que ce projet assure aujourd'hui un lien, une connexion avec d'autres initiatives logicielles, qu'elles soient Open Source ou non. Ainsi, la décision très importante prise par la fondation Eclipse d'implanter, comme moteur de gestion dynamique, des plug-in dans la technologie développée au sein de la fondation OSGI induit désormais une collaboration étroite entre les deux organismes, pour le plus grand bénéfice des utilisateurs. Car cette approche de programmation orientée composants (ou bundles dans le « langage » OSGI ou plug-in dans le « langage » Eclipse), permettant de bâtir des systèmes complexes qui s'enrichissent par ajout de fonctions sans remettre en cause une architecture de base, s'appuie ainsi sur des mécanismes largement acceptés par la communauté des développeurs.

Au delà, les travaux d'Eclipse au niveau du débogage entraînent par exemple, sous l'impulsion d'Arm, une collaboration avec la fondation Spirit, focalisée sur les spécifications d'écriture et de présentation des blocs de propriété intellectuelle. Un pont est ainsi jeté entre le monde de la CAO et celui du développement logiciel, jusque-là complètement étanche.

Autre exemple, la société française TNI-Software est actuellement en train de développer un outil de description, de configuration, de validation d'architectures et de génération de code destiné aux applications embarquées pour l'automobile, conformes à l'initiative Autosar (*). Il s'agit ici d'un des premiers outils sous Eclipse destiné à un marché vertical. Cette initiative est révélatrice des liens qui se tissent entre la fondation Eclipse et le consortium Autosar, très intéressé par les possibilités offertes par la plate-forme en source libre, notamment à travers son initiative OTF (Open tool framework).

Enfin, signalons la conception en cours de la plate-forme Topcased, initiative française visant à créer un environnement Open Source de développement sous Eclipse pour des applications critiques temps réel embarquées, en particulier dans l'avionique. La sortie de la version 1.0 de cette plate-forme qui inclura, au-delà des outils de description graphique d'une application basée modèles (UML, AADL...), des fonctions de génération de code, de validation et de tests de modèles, et de simulation devrait être coordonnée avec celle de la version Europa d'Eclipse en juin 2007.

(*) Autosar est un projet très important, initié par l'industrie automobile, dont la première phase vient de se terminer cette année. Il vise à définir une architecture logicielle qui assure un découplage entre les logiciels embarqués de bas niveau (système d'exploitation, réseaux) et les logiciels applicatifs installés sur un calculateur embarqué dans un véhicule.

Callisto en 2006... Europa en 2007

Afin de faire face aux développements très rapides des différents projets qui composent l'environnement Eclipse, la fondation éponyme a décidé de mieux canaliser leur mise à disposition auprès de la communauté des développeurs, en décidant d'une sortie annuelle coordonnée de la nouvelle version de la plate-forme Eclipse avec les nouvelles versions des différents projets menés au sein de la fondation. Il s'agit avant tout de « donner confiance aux utilisateurs, en rationalisant la sortie des nouvelles versions de la plate-forme Eclipse et des plug-in associés » , précise Ralph Mueller, responsable européen de la fondation Eclipse. Désormais, chacune des nouvelles sorties d'Eclipse portera le nom d'un des satellites de la planète Jupiter (il y en a 63, la fondation a prévu large pour l'avenir !). Proposée en juin de cette année, la version 3.2 d'Eclipse porte par exemple le nom de Callisto. Elle intègre les projets, dotés de leur propre numéro de version, qui ont satisfait à un certain nombre de règles, obligatoires et souhaitées, édictées par la fondation : test d'interopérabilité, vérification de non-duplication de plug-in, respect d'un calendrier de mise à disposition auprès de la communauté, etc. Ainsi, au sein de la future version d'Eclipse, baptisée Europa, qui sera disponible fin juin 2007, de nouveaux projets, dont certaines parties du projet DSDP, devraient enrichir la plate-forme.

A condition toutefois que ces derniers soient jugés éligibles par la fondation, c'est-à-dire qu'ils aient respecté au cours des mois qui viennent les conditions de leur intégration dans la plate-forme (figure 3).





Nous contacter

Charte de confiance

Voir notice légale
Tous droits réservés © 1999-2008 Groupe Tests - 01net.