[1] JAVA i STM32 – ekspresowy kurs programowania z MicroEJ

Kolejnym narzędziem jest Stack Trace Descriptor przydatny przy odczytywaniu komunikatów błędów zwracanych przez wyjątki w maszynie wirtualnej. Trzecim narzędziem jest Code Coverage Analyzer, który umożliwia sprawdzenie częstości wykonywania poszczególnych kawałków kodu. Wynikiem analizy jest raport HTML pozwalający zapoznać się z wnioskami (rysunek 5). Heap Dumper z kolei pozwala na zapisywanie chwilowego stanu sterty, w której znajdują się zaalokowane obiekty. Narzędzie to pomaga w wyszukiwaniu wycieków pamięci, przeglądaniu stanu obiektów i optymalizowaniu wykorzystania sterty aplikacji. Ostatnim z opisanych narzędzi jest Test Suite. Umożliwia ono sprawdzanie poprawności aplikacji udostępniając mechanizmy przeprowadzania testów jednostkowych i generując raporty do analizy błędów.

Rys. 5. Okno Code Coverage Analyzer

3. Instalacja

Instalacja niezbędnego oprogramowania nie stwarza większych problemów, należy się jednak przygotować na konieczność rejestracji w przynajmniej jednym serwisie. Poniżej przedstawiono krótką instrukcję instalacji i uruchomienia przykładowego projektu. W przykładzie wykorzystane zostały programy MicroEJ 3.1.1 i Keil uVision5, obydwa w wersjach ewaluacyjnych.

W pierwszej kolejności należy pobrać środowisko MicroEJ. W tym celu należy się zarejestrować na stronie https://stm32.microej.com/oemServer/user/index.jsf i w zakładce Get Products pobrać wersję ewaluacyjną środowiska (STM32Java Evaluation). Po rozpakowaniu pobranego archiwum można przystąpić do instalacji postępując zgodnie ze wskazówkami instalatora. Przy okazji warto sprawdzić czy zainstalowana jest maszyna wirtualna Java. Jeżeli nie, można pobrać i zainstalować pakiet JDK (Java Development Kit) ze strony http://www.oracle.com/technetwork/java/javase/downloads/index.html.

Kolejnym krokiem jest aktywacja MicroEJ. Należy to zrobić ponownie przez stronę https://stm32.microej.com/oemServer/user/index.jsf, tym razem w zakładce Register a Product. Numer Product P/N można znaleźć wracając do zakładki Get Products, natomiast UID należy wygenerować samemu uruchamiając MicroEJ i wybierając menu Help→Welcome a następnie Generate UID. Teraz można już pobrać plik z licencją z tej samej strony pod zakładką Registered Products i zainstalować ją w MicroEJ przez Help→ Welcome, Manage Licenses, Add, Select an acrivation key archive. Od tej pory możemy już korzystać ze środowiska MicroEJ.

Przed rozpoczęciem instalacji uVision, warto zapoznać się z dokumentem TLT-0606-MAN-STM32JavaKeilEvaluation-B.pdf znajdującym się na stronie https://stm32.microej.com/oemServer/user/index.jsf w zakładce Registered Products, po kliknięciu na P/N zarejestrowanego środowiska. Znajdują się tam szczegółowe instrukcje dotyczące instalacji i licencjonowania wersji ewaluacyjnej.

Teraz pozostało już tylko uruchomienie przykładowego projektu i sprawdzenie, czy wszystko działa jak należy. Po uruchomieniu MicroEJ należy wybrać File→New→Java Example. Mając do dyspozycji zestaw ewaluacyjny 32F429IDISCOVERY, możemy wybrać odpowiednia platformę (JPF): STM32F429I-DISCO KickStartEVAL, a następnie jeden z dostępnych przykładów, np. MicroUI/Images (rysunek 6).

Rys. 6. Tworzenie nowego projektu

Po kliknięciu Next możemy nadać nazwę i kliknąć Finish w celu utworzenia projektu. Projekt można uruchomić klikając prawym przyciskiem myszy na nazwę projektu, który pojawił się w drzewie po lewej stronie okna głównego i wybierając Run As→Run Configurations…

Rys. 7. Uruchamianie projektu

Dostępne są dwie konfiguracje: SimJPF i EmbJPF. Pierwsza z nich uruchamia aplikację we wbudowanym w MicroEJ symulatorze, natomiast druga kompiluje projekt i przygotowuje program do umieszczenia w pamięci Flash mikrokontrolera.

Jeżeli podczas kompilacji została użyta platforma KickStart, to możliwe jest zaprogramowanie mikrokontrolera bezpośrednio ze środowiska MicroEJ. W tym celu należy kliknąć dwukrotnie na ikonie MicroEJ Tool w tym samym oknie, wybrać odpowiednią platformę KickStart oraz opcję programowania za pomocą ST-Link. W zakładce Configuration trzeba podać ścieżkę do pliku *.out, który po kompilacji umieszczony jest wewnątrz projektu, w katalogu out. Po kliknięciu przycisku Run programowana jest pamięć mikrokontrolera i automatycznie uruchamiana jest aplikacja. Na koniec warto jeszcze wspomnieć o opcji Launch Group, która umożliwia połączenie dwóch poprzednich narzędzi (kompilacja i programowanie) w jedną sekwencję i uruchamianie ich za pomocą jednego kliknięcia.

O autorze