Virtuelle MaschineDer französische Java-Plattformhersteller IS2T präsentiert MicroEJ®, die branchenweit erste Java-Plattform, die die Entwicklung und Integration Java-basierter Funktionen für kostengünstige, speicherbeschränkte C- und C++-Anwendungen auf Cortex-M-basierten Mikrocontrollern unterstützt.
MicroEJ bietet eine Java-Laufzeitplattform mit IS2Ts 28 KB großer MicroJvm® Java Virtual Machine, einem optionalen Echtzeitbetriebssystem (RTOS) (~10 KB), allen notwendigen Bibliotheken für eine moderne grafische Mensch-Maschine-Schnittstelle (HMI) sowie einer vollständig debuggten und getesteten Binärcode-Plattform, die direkt auf jeden kompatiblen Mikrocontroller übertragen werden kann. Die MicroJvm Java Virtual Machine von IS2T benötigt lediglich 28 KB Flash-Speicher, weniger als 1,5 KB RAM und bootet in nur 2 ms bei 120 MHz. Eine voll funktionsfähige, moderne grafische HMI benötigt 90 bis 140 KB Programmspeicher.


Java, das 1995 entstand, ist seit Langem die bevorzugte Plattform für grafische Benutzeroberflächen (GUIs), das Internet der Dinge (IoT), serviceorientierte Architekturen (SOA), Webanwendungen und mobile Anwendungen. Java besteht aus zwei Komponenten: der objektorientierten Programmiersprache Java und einem 32-Bit-Befehlssatz (204), der einen Speichermanager umfasst. Objektorientierte Programmierung und die eigenständige Java Virtual Machine (JVM) bieten die Möglichkeit, Programme einmal zu programmieren und überall auszuführen. Dadurch können Entwickler die Softwarekomplexität besser beherrschen und die Entwicklungszyklen von Hardware und Software durch Virtualisierung und Simulation entkoppeln.


Vor den MicroEJ-Plattformen umfasste eine typische Java-Plattform 5 MB und benötigte mindestens 400 MHz Rechenleistung, was sie für ressourcenbeschränkte eingebettete Systeme ungeeignet machte. Entwickler eingebetteter Systeme, die anspruchsvolle Mensch-Maschine-Schnittstellen (HMIs) implementieren mussten, waren auf teure externe Prozessoren, umständliche externe GUI-Prozessoren und Autorenwerkzeuge angewiesen, was zu speicherintensiven Anwendungen führte. Zudem mussten sie versuchen, grafische Komponenten direkt in Standard-C-Routinen zu übersetzen, was die Systemzuverlässigkeit, -leistung und -wartbarkeit beeinträchtigen konnte.


VirtualMachine1.tiffIdentische eingebettete und simulierte Java MicroEJ-Plattformen (JPFs) – Die eingebettete MicroEJ JPF umfasst die virtuelle Maschine MicroJvm, Standardbibliotheken wie B-ON+ CLDC (Java Core Application Programming Interface – eingebettete API), MicroUI® (eingebettete Benutzeroberfläche), MWT (eingebettete Widget-Umgebung), NLS (National Embedded Support), einen laufenden PNG-Bilddecoder sowie grafische Werkzeuge für Schriftdesign, Frontpanels und Storyboards. MicroEJ kann ohne RTOS oder auf jedem beliebigen RTOS ausgeführt werden, darunter Micriums uOS, Keils RTX oder Seggers EmbOS. Das Board unterstützt Pakete, die für verschiedene herstellerspezifische Evaluierungsboards verfügbar sein werden.


Der MicroEJ JPF-Simulator bietet dank seiner erweiterbaren Optionen mit simulierten Objekten (Hardware oder Software) eine voll funktionsfähige Simulation eingebetteter Java-Plattformen. Dies ermöglicht umfassende Simulationen der Zielhardware, die spezialisierte Schnittstellen wie Sensoren, Aktoren und spezifische Kommunikationsverbindungen nutzen können. Anwendungen lassen sich in Java prototypisch entwickeln und unabhängig vom realen Gerät auf einer simulierten Plattform testen. Dadurch werden Neucodierungen aufgrund von Geräteverfügbarkeitsproblemen oder aufwendige Integrationsphasen bei der Anwendungsbereitstellung vermieden. Nach der Freigabe des Prototyps kann die Entwicklung in Java fortgesetzt werden, bis die Anwendung mithilfe der von der simulierten Plattform und dem MicroEJ SDK bereitgestellten Testinfrastruktur vollständig getestet ist. Anschließend kann die Anwendung über JTAG oder andere eingebettete Programmiersysteme auf dem Zielsystem bereitgestellt werden.


Diese simulierten Plattformen verwenden die gleichen Softwarebibliotheken, bieten die gleichen Programmierschemata und die gleichen Speichermodelle, sodass die Ingenieure genau wissen, wie viel Speicher für die Anwendung benötigt wird und den kostengünstigsten Mikrocontroller (MCU) auswählen können.


Einfache Schnittstelle für bestehendes C – Vorhandene C/ASM-Treiber und Anwendungslogik lassen sich problemlos in die Micro EJ JPF-Plattform integrieren. So wird neuer Java-Code zugänglich, während der bestehende C-Code erhalten bleibt. Die native SNI-Schnittstellenbibliothek ermöglicht direkte Aufrufe von C-Funktionen aus Java und umgekehrt, einschließlich Argumenten von Basistypen wie Integer oder Float sowie Arrays. SNI ermöglicht einen hocheffizienten Datenaustausch zwischen diesen beiden Welten und vermeidet Zwischenpuffer und unnötige Pufferkopien (beachten Sie, dass DMA-Geräte Daten ebenfalls mithilfe einer Pufferimplementierung austauschen können)


Für die Datenentkopplung und komplexere Aufgaben können Entwickler die ShieldedPlug-Schnittstelle nutzen. ShieldedPlug basiert auf Publish/Subscribe-Mechanismen mit einem Ereignissystem und ermöglicht die räumliche und zeitliche Entkopplung zwischen der
C- und der Java-Welt.

Weitere Informationen oder ein Angebot