Espruino - interpreter języka JavaScript dla ARM Cortex-M3
Dodano: Sobota, 6 października 2012, godzina 17:46:22Kategoria: Nowości, ciekawostki
Przygotowując programy dla mikrokontrolerów wykorzystujemy najczęściej tzw. metodę kompilacji skrośnej. Tworzymy na komputerze klasy PC kod w jednym z języków wysokiego poziomu (C, C++, Java, C# itp.), uruchamiamy jego kompilację w dedykowanym dla danej platformy kompilatorze i kod wynikowy, maszynowy - zrozumiały bezpośrednio dla układu, wysyłamy do pamięci flash lub RAM w mikrokontrolerze. Na koniec przeprowadzamy testy gotowego rozwiązania i wprowadzamy ewentualne poprawki.
Dla dużych projektów jest to sensowna i naturalna droga, natomiast jeżeli chcemy szybko coś przetestować lub potrzebujemy bardzo prostej aplikacji typu migająca dioda LED, to takie podejście wyłącznie wydłuża czas realizacji zadania. W takim wypadku z pomocą przychodzą interpretery różnych języków wysokiego poziomu, które umożliwiają wykonywanie kodu bez jego kompilacji do wersji maszynowej. Przykładowymi językami na platformie PC, które nie są kompilowane, tylko interpretowane, są bardzo popularne PHP i JavaScript.
Projekt Espruino jest interpreterem języka JavaScript dla mikrokontrolerów z rodziny ARM Cortex-M3 i aktualnie obsługuje tylko jedną platformę, tj. najprostszą z rodziny STM32 Discovery, płytkę ewaluacyjną STM32VLDISCOVERY z układem STM32F100RB. Niemniej, już teraz możliwości Espruino są wystarczające do tworzenia prostych aplikacji.
Niektóre z cech Espruino to:
- możliwość zapisania lub skasowania przygotowanego programu
- obsługa różnych typów danych języka JavaScript
- obsługa formatu JSON
- dostęp do wejść i wyjść cyfrowych oraz analogowych
- obsługa zdarzeń (np. wykonanie kodu po zmianie wartości wejścia cyfrowego - przerwanie)
Żeby rozpocząć pracę z Espruino potrzebne nam będą:
- płytka ewaluacyjna STM32VLDISCOVERY
- konwerter USB-TTL (lub jakieś inne urządzenie, dzięki któremu będziemy mogli komunikować się z Discovery za pomocą UART1 na pinach PA9 i PA10)
- plik binarny z gotowym interpreterem Espruino (dostępny na stronie projektu: www.pur3.co.uk/espruino/)
- znajomość JavaScript
Uruchomienie makiety Discovery z interpreterem Espruino sprowadza się do wykonania kilku prostych kroków:
- wgrania gotowego pliku binarnego do pamięci flash mikrokontrolera STM32F100RB (np. przy pomocy programu STM ST-LINK Utility)
- podłączenia konwertera TTL do UART1 na płytce (RX - pin PA10, TX - PA9, nie zapominajcie, że sygnał RX na płytce podłączamy do wyjścia TX w konwerterze i vice versa)
- uruchomienie jakiegokolwiek programu umożliwiającego komunikację przez podłączony do PC konwerter USB-TTL (np. Putty lub Terminal)
- rozpoczęcie pisania i wykonywania programów w JavaScript
Wszystkie informacje dotyczące instalacji i rozpoczęcia pracy z Espruino, a także listę aktualnie dostępnych metod i funkcji znajdziecie na stronie projektu: www.pur3.co.uk/espruino/.

Espruino, The JavaScript Interpreter for Microcontrollers, w działaniu
Niestety, projekt jest wciąż w fazie rozwojowej, nie posiada gotowej dokumentacji i nie jest dostępny na otwartej licencji. Możliwe jest jednak pobranie gotowego pliku binarnego na użytek osobisty. Przyszłość projektu też na razie nie jest jasna - wygląda na to, że jego autor nie wie czy chce udostępnić projekt w ramach otwartej licencji, czy też pozostawić go zamkniętym i skomercjalizować. Zamierzam śledzić rozwój Espruino i na pewno poinformuję Was jeżeli coś nowego się w jego sprawie wydarzy.
» Podobne wpisy (według tagów)
» Tagi dla tego wpisu:
ARM Cortex-M3 • Espruino • JavaScript • mikrokontroler
» komentarzy: 2 «
Dodany: Niedziela, 7 października 2012 o godzinie: 17:56:41
Bardzo fajny wpis. Sam w przyszłości chciałby zająć się tego typu programowaniem, ale to jeszcze nie teraz ;)
Przy okazji zapraszam na mojego bloga: highlab.pl ;)
Dodany: Środa, 14 listopada 2012 o godzinie: 00:18:18
[...] wiem czy pamiętacie lub czy w ogóle czytaliście mój wcześniejszy wpis dotyczący Espruino, ale obiecywałem w nim, że będę śledzić temat. Dla przypomnienia, w dużym skrócie, Espruino [...]
» dodaj komentarz «