MicroEJ ermöglicht die Erzeugung von Java-Applikationen, die auf preiswerten – Stichwort: preiswerter als ein OrangePi – Mikrocontrollern ausführbar sind. Die Nutzung der vollwertigen präkompilierten virtuellen Maschine ist allerdings nicht jedermanns Sache.
Als sich der Autor dieser Zeilen erstmals mit MicroEJ auseinandersetzte, war das manuelle Kompilieren der Anwendungen mehr Regel als Ausnahme – auf damaligen Mikrocontrollern wie dem unvergessenen STM32F429 gab es schlichtweg nicht genug Platz, um ein präkompiliertes Image wie das in den letzten Teilen des Tutorials verwendete zu platzieren.
Moores Gesetz enttäuschte – wie so oft – nicht, weshalb I2ST zur Abschwächung der Lernkurve mehr und mehr auf vorgefertigte Plattformen setzte. Die ist allerdings nicht unbedingt in unserem Interesse, weshalb wir nun nochmal an den Start gehen.
Für die Erzeugung einer eigenen Plattform spricht vor allem, dass Sie auf diese Art und Weise auch mit dem C-Teil der Solution interagieren können. Das ist sinnvoll, weil sie damit direkt mit den Hardware-Engines des zugrundeliegenden Mikrocontrollers kommunizieren. I2ST hat in den letzten Jahren zwar einige Interfaces, beispielsweise für GPIO, nachgerüstet, ist aber prinzipbedingt immer nur zum Unterstützen eines Teils der Möglichkeiten in der Lage. Erzeugen Sie Ihre Plattform stattdessen selbst, so können Sie mehr oder weniger jedes Modul nutzen, das der PT-Mikrocontrollerhersteller in Silizium gießt.
Schon hier sei davor gewarnt, eine hauseigene Plattform nur zum Senken der Bill of Materials einzusetzen. Die durch das Verwenden eines Mikrocontrollers mit weniger Speicherausbau entstehenden Ersparnisse erweisen sich in der Praxis nur bei extrem großen Serien als ökonomisch sinnvoll. Sie müssen bedenken, dass die Wartung und die Pflege einer hauseigenen Plattform Unmengen von Mannstunden verschlingen kann und im Zweifelsfall (Stichwort: Kundensupport bei Problemen) zu massiven Problemen führt.
Sei dem, wie es sei: Wie am Beginn der Serie aktualisieren wir unsere Micro-EJ-Plattform – seit unseren ersten Gehversuchen ist so viel Zeit ins Land gegangen, dass es nun eine neue Version des Produkts gibt. Besuchen Sie also abermals [1] und klicken Sie auf den in Orange gehaltenen Download-Button. I2ST liefert Ihnen daraufhin eine rund 750 MB große .exe-Datei, die Sie ausführen – zum Zeitpunkt der Drucklegung war die Version 20.12 aktuell.
Dieser Artikel soll nicht in ein Tutorial über die Erzeugung von BSP-Paketen ausarten, weshalb wir eine halbunterstützte HAL verwenden. Möchten Sie sich komplett freimachen, so empfiehlt sich die Lektüre von [2] – beachten Sie allerdings, dass zum Nachvollziehen dieses Tutorials profunde C++- und Linux-Kenntnisse erforderlich sind.
Für unser bis jetzt verwendetes Board stellt I2ST freundlicherweise eine schlüsselfertige HAL zur Verfügung, die unter [3] auf Aufmerksamkeit wartet (Kasten: „Komplett freimachen“). Laden Sie das rund 150 MB große Archiv herunter und extrahieren Sie es in einen bequem zugänglichen Pfad im Dateisystem Ihrer Workstation. Im nächsten Schritt starten wir MicroEJ. Sowohl der Workspace als auch das Repositoryverzeichnis können an dem Platz abgelegt werden, den die IDE vorschlägt.
Im nächsten Schritt klicken wir auf die Option File | Import | MicroEJ | Architectures, und entscheiden uns daraufhin für das Unterverzeichnis C:\Users\tamha\Downloads\STM32F746GDISCO-846SI-fullPackaging-eval-3.4.2\platformArchitecture. MicroEJ blendet daraufhin das in Abbildung 1 gezeigte Fenster ein, in dem insgesamt fünf Untermodule zum Import bereitstehen.
Vor dem Import müssen Sie noch auf die unter dem Beschreibungstextfeld befindliche Checkbox klicken, um die Lizenzbedingungen für das HAL-Paket abzunicken. Danach folgt auch schon ein Klick auf Finish, um MicroEJ SDK zum Armieren des Plattformquellcodes zu animieren.
Je nach Leistungsfähigkeit Ihrer Workstation ist danach eine kleine Bedenkpause einzulegen. Bedenken Sie, dass die Arbeit mit BSPs und Co. eine sehr rechenleistungsintensive Arbeit ist: Wer mit einem Laptop experimentiert und viel Embedded-Entwicklung betreibt, ist spätestens an dieser Stelle gut beraten, einen Achtkerner zu kaufen. Die meisten Embedded-Kompilationsprozesse sind nämlich exzellent parallelisiert.
Die Verwendung von präkompilierten MicroEJ Images ist aus Sicht von I2ST eine Win-win-Situation für das Unternehmen. Die Software blendet an so vielen Stellen das hauseigene Logo ein, dass man zumindest durch das Mindshare profitiert.
Bei einer hauseigenen Plattform lässt sich das weitgehend reduzieren, weshalb I2ST das Lizenzsystem an dieser Stelle stark anzieht. Zudem behält man sich die Option zur Finanzierung der Weiterentwicklung durch den Controllerhersteller ...