© Enkel/Shutterstock.com
Java am Microcontroller mit MicroEJ – Teil 7

Plattform hoch!


Im letzten Heft hatten wir unserer Workstation zu einer Bekanntschaft mit Keil verholfen. Sinn dieser masochistischen Maßnahme war die Einrichtung einer Kompilations-Toolchain, an deren hinterem Ende eine schlüsselfertige MicroEJ-Arbeitsumgebung herausfallen sollte. Sinn der Erzeugung einer eigenen Plattform ist – wie schon besprochen – vor allem die Möglichkeit zur Einbindung von C-Code: Ob das Fernziel davon eine Reduktion der Koppelung oder das bessere Ansprechen der Zielhardware ist, ist von Fall zu Fall unterschiedlich und für uns in diesem Artikel nicht weiter relevant.

Angenehmer Nebeneffekt der Nutzung einer hauseigenen Plattform ist, dass ein Großteil des MicroEJ-Brandings unter den Tisch fällt. Der Nachteil ist allerdings, dass der aus den vorhergehenden Teilen bekannte Programmstarter nun ebenfalls nicht mehr zur Verfügung steht, weshalb unser Board von Haus aus nichts anzuzeigen hätte.

Eine Beispiel-App muss her

Unsere erste Amtshandlung besteht darin, im MicroEJ SDK auf File | New | MicroEJ Standalone Application Project zu klicken. Diesmal erzeugen wir eine Standalone Application, die nicht von den diversen in den normalen Plattformen enthaltenen Unterstützungselementen abhängig ist. Lohn der Mühen ist die Erzeugung eines neuen MicroEJ-Applikationsprojekts, das „Hello World“ auf der Konsole ausgibt – fürs Erste eine ausreichende Payload.

Zur Einrichtung der Applikationsausführungskonfiguration müssen wir das Projekt im ersten Schritt rechts anklicken und im daraufhin erscheinenden Kontextmenü die Option Run As | MicroEJ Application wählen. Das MicroEJ SDK beginnt daraufhin mit der Kompilation und zeigt eine Firewallwarnung an. Diese sollten Sie, samt Zugriff auf sowohl lokale als auch öffentliche Netzwerke, abnicken. Ein eventuell startendes Simulatorfenster können Sie an dieser Stelle bedenkenlos schließen.

Sinn dieser kleinen Übung war, dass Eclipse nun eine schlüsselfertige Konfiguration angelegt hat. Im Konfigurationsmanager lässt sie sich wie in Abbildung 1 gezeigt zur Bearbeitung öffnen.

hanna_microej_7_1.tif_fmt1.jpgAbb. 1: MicroEJ ist und bleibt Eclipse

Wer unsere kleine Testapplikation über die angelegte Plattform ausliefern möchte, muss im Execution-Tab im ersten Schritt den Radio-Button Execute on Device auswählen. In diesem Fall kompiliert MicroEJ Studio das Programm und kopiert es daraufhin in eine bestimmte Ordnerposition, die von der Plattform im Rahmen der Kompilation abgeerntet und mit den von Microvision erzeugten Kompilaten gemeinsam in Richtung des Ziel-Boards kopiert wird. Wer stattdessen den Configuration-Tab öffnet, sieht weitere Informationen (Abb. 2).

hanna_microej_7_2.tif_fmt1.jpgAbb. 2: Das Plattformprojekt erwartet eine Datei mit dem Namen microejapp.o

Danach ist es Zeit für den Zweikampf von Apply und Run, um die Kompilation anzustoßen. Nach dem erfolgreichen Durchlaufen präsentiert sich die Erfolgsbestätigung dann wie in Abbildung 3.

hanna_microej_7_3.tif_fmt1.jpgAbb. 3: Die .o-Datei wurde an ihren Aufenthaltsort kopiert

Lohn der Mühen ist unter anderem die Entstehung der Datei /STM32F746GDISCO-Full-CM7_ARMCC-FreeRTOS-bsp/Projects/STM32746G-Discovery/Applications/MicroEJ/MDK-ARM/Project.uvprojx. An der Endung .uvprojx ist leicht erkennbar, dass es sich dabei um eine Keil-Projektmutterdatei handelt.

Aufgrund der Verwendung von mehreren Keil-Instanzen haben wir davon allerdings nicht besonders viel. Ein Doppelklick würde das Betriebssystem unserer Workstation dazu animieren, die Keil-Instanz loszulassen, die sich gerade aus Zufall dafür verantwortlich fühlt. Stattdessen greifen wir uns das nach der im letzten Artikel besprochenen Methode gestartete Keil-Fenster und entscheiden uns für die Option Project | Open Project. Im daraufhin erscheinenden Common-Dialog wechseln Sie in das entsprechende Verzeichnis und markieren die Datei als zu laden. Bei der Beschaffung des Pfads ist es übrigens hilfreich, die Datei im Package Explorer rechts anzuklicken und dann die Option Show in | System Explorer zu wählen.

An dieser Stelle haben wir es – zumindest aus Sicht von Keil – mit einem gewöhnlichen Keil-Projekt zu tun. Verbinden Sie unsere Evaluationsplatine deshalb über den Mini-USB-Port mit dem Rechner und starten Sie durch Anklicken von Project | Build Target einen Kompilationsprozess.

Nach der erfolgreichen Kompilation befehligen wir durch Flash | Download das Neuprogrammieren des Evaluations-Boards. Ab dem nächsten Aus- und Einschalten sehen Sie nur noch einen weißen Bildschirm. Das ist logisch, weil unsere hauseigene Plattform ja (noch) keinen GUI-Code enthält.

Beginn der Manipulationen

Das Aufscheinen des weißen Bildschirms auf unserem Evaluations-Board informiert uns darüber, dass die hauseigene MicroEJ-Plattform gefechtsbereit ist. Als Nächstes wollen wir damit beginnen, eine eigene Payload zur Ausführung zu bringen. In der Projektmappe des hauseigenen Java Projects findet sich im Ordner src/main/java eine Datei namens Main.java – in ihr möchten wir nach folgendem Schema die Ausgabe von Code über die println-Funktion befehligen:

public static void main(String[] args) { for (;;) { System.out.println("Hello World!"); //$NON-NLS-1$ } }

Wer schon mit anderen Mikrocontroller-Programmierumgebungen zu tun hatte, erwartet an dieser Stelle...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang