L’éditeur de logiciels IS2T, spécialisé dans la fourniture de plateformes Java, annonce la plateforme MicroEJ®, première plateforme Java à supporter le développement et l’intégration de fonctions Java pour des applications C / C++ sur microcontrôleurs Cortex-M, environnements bas-coût à mémoire limitée. MicroEJ offre une plateforme Java embarquée comprenant MicroJvm® – la machine virtuelle Java IS2T de 28Koctets –, un OS temps réel optionnel ( 10Koctets), l’ensemble des bibliothèques logicielles pour la conception d’Interfaces Homme-Machine (IHM) graphiques et une plateforme de simulation complète permettant le prototypage, la mise au point et le test d’applications avant leur programmation dans un microcontrôleur. La machine virtuelle MicroJvm requiert 28Koctets de mémoire programme (Flash), moins de 1.5Koctets de RAM et un temps de démarrage de 2ms seulement à 120 MHz. Une application graphique complète requiert un système de 90 à 140 Koctets au total.
Après ses premiers débuts en 1995, Java reste la plateforme technologique de choix pour la conception d’applications graphiques (GUI), d’objets de l’internet (IOT), d’architectures orientées services (SOA), du web et des smartphones. La technologie Java est basée sur un langage de programmation orienté objet et un processeur incluant une gestion automatique de mémoire. La technologie Java offre la portabilité (compile once – run anywhere) et la flexibilité qui permet aux ingénieurs de mieux contrôler la complexité logicielle et de découpler les cycles de développement matériels et logiciels grâce à cette virtualisation et aux capacités de simulations associées.
Avant les plateformes MicroEJ, une plateforme Java type nécessitait environ 5MOctets et demandait des puissances de calcul équivalant à un processeur 32 bits cadencé à 400MHz minimum, excluant ainsi toute utilisation dans un environnement contraint embarqué. Les ingénieurs de développement de systèmes enfouis devant développer des Interfaces Homme-Machine graphiques n’avaient pour choix que d’utiliser des processeurs dédiés et coûteux, des outils complexes et limités de création d’interfaces graphiques avec pour conséquence des besoins inadéquats en mémoire ; ou encore des langages disponibles comme le C, mais mal adaptés à la conception de telles interfaces tant en termes de fiabilité, performance que capacité de maintenance.
Des plateformes duales MicroEJ (JPF) simulées et embarquées - Les plateformes Java MicroEJ JPF embarquées ont pour moteur d’exécution la machine virtuelle MicroJvm®, des bibliothèques logicielles standard comme B-ON et CLDC (les API Java embarquées), MicroUI® (interfaces Homme Machine embarquées), MWT (Framework de conception de widgets embarqués), NLS (support des traductions), un décodeur d’image au format PNG, ainsi que des outils graphiques d’aide à la conception de polices de caractères, de face-avant d’équipements, ou de scénarii d’usage d’IHM. Les plateformes MicroEJ peuvent s’exécuter avec ou sans le support d’un RTOS, notamment uOSII de Micrium, RTX de Keil (ARM) ou EmbOS de Segger. Les supports de matériels (BSP) seront disponibles pour un large choix de cartes d’évaluations.
Les plateformes MicroEJ simulées offrent une simulation fonctionnelle complète de leur équivalent embarqué grâce à un système d’extensions pour l’ajout de périphériques virtuels ou réels de manière à pouvoir simuler l’ensemble des capacités des cartes cibles (capteurs, actionneurs, liens de communication) hébergeant les plateformes MicroEJ embarquées. Les applications Java peuvent être prototypées et testées sur les plateformes simulées indépendamment de la cible, évitant ainsi le recodage de parties spécifiques au matériel et une intégration logicielle / matériel difficile et coûteuse. Ainsi, quand le prototype de l’application Java est accepté, la conception peut se poursuivre – toujours en Java – sur la plateforme simulée. Lorsque l’application est prête, elle peut alors être programmée en utilisant les outils de programmation comme les sondes JTAG ou des moyens de téléchargement par des liens de communication standard. Ces plateformes simulées utilisent les mêmes bibliothèques logicielles que les plateformes embarquées, fournissent les mêmes politiques d’ordonnancement des taches et les mêmes modèles de mémoire de telle façon que les ingénieurs peuvent connaître par avance les besoins en mémoire de leur application et choisir en connaissance de cause le microcontrôleur optimal.
Intégration simplifiée dans du patrimoine logiciel – Les drivers C/ASM et le code métier existants peuvent facilement accueillir une plateforme Java MicroEJ et ainsi permettre la cohabitation avec le code Java nouvellement écrit. La bibliothèque d’interface au code natif (C/ASM) appelée SNI permet l’appel direct de fonctions C et réciproquement, tout en offrant des moyens de passage de paramètres comme les entiers, les flottants ou des tableaux de paramètres. SNI permet de partager des données entre les deux mondes Java et natif sans duplication de données consommatrices en temps et mémoire, et permet également l’accès direct à ces données par des DMA. Pour des interfaces de données plus avancées, notamment en matière de découplage des mondes Java et natifs, l’interface ShieldedPlug basée sur un mode de communication de type publish / subscribe, fournit un découplage spatio-temporel des deux modes.