Kontynuujemy przegląd pakietów narzędziowych dla programistów przygotowujących aplikacje dla mikrokontrolerów wyposażonych w rdzenie ARM, skupiając się wyłącznie na oprogramowaniu dostępnemu bezpłatnie. W tej kategorii znajdują się zarówno narzędzia przygotowane i udostępniane przez producentów - zazwyczaj dedykowane konkretnej rodzinie mikrokontrolerów - jak i oprogramowanie uniwersalne, autorstwa firm lub osób zainteresowanych wspieraniem rozwoju bezpłatnego oprogramowania na licencji GPL.
Podstawowe informacje o Coocox:
|
Uniwersalne pakiety programistyczne
"Uniwersalność" w przypadku narzędzi programistycznych dla mikrokontrolerów z rdzeniami firmy ARM polega na wyposażeniu pakietu instalacyjnego, lub możliwości jego łatwego doposażenia w pakiety bibliotek umożliwiających pracę z różnymi typami układów, pochodzących od różnych producentów i wyposażonych w różne rdzenie ARM.
Są to narzędzia będące odpowiednikami funkcjonalnymi pakietów komercyjnych, przedstawionych w poprzednim wydaniu EP, z natury rzeczy przygotowywane przez grupy fanów rozwiązań bazujących na licencji GPL, bowiem żadna firma komercyjna nie będzie w stanie wykonać niezbędnej pracy i świadczyć wsparcia technicznego bezpłatnie.
Podstawowe informacje o YAGARTO GNU toolchain:
|
Jedną z najpopularniejszych obecnie ścieżek tworzenia bezpłatnych środowisk programistycznych dla mikrokontrolerów z rdzeniami ARM jest wykorzystanie dostępnych bezpłatnie:
- środowiska IDE o nazwie Eclipse,
- kompilatora języków CC++ o nazwie ARM-GCC,
- programowego debuggera GDB (serwera GDB),
- programów pomocniczych (binutils, newlib itp.).
Podstawowe informacje o LPCXpresso 5:
|
Wszystkie wymienione elementy są dostępne bezpłatnie (także w wersjach źródłowych), ale ich integracja w kompletne, dobrze działające środowisko, jest dość trudna i to pomimo dostępnej dużej liczby tutoriali przygotowywanych przez wielu autorów na całym świecie.
Kłopoty konfiguracyjne występujące w środowiskach budowanych z bezpłatnych elementów są zazwyczaj dokuczliwe tylko od razu po ich instalacji, a po poprawnym skonfigurowaniu funkcjonują one tak samo dobrze jak komercyjne odpowiedniki.
Żeby zminimalizować kłopoty instalacyjno-konfiguracyjne, trudne do przejścia nie tylko dla początkujących, powstały dystrybucje wyposażone w podstawowe pliki konfiguracyjne, przygotowane w taki sposób, żeby maksymalnie uprościć instalację.
Jednym z najpopularniejszych pakietów tego typu jest YAGARTO GNU toolchain (rysunek 1), który składa się obecnie (grudzień 2012) z trzech plików exe (w wersji dla Windows), które po instalacji tworzą kompletne, "okienkowe" środowisko programistyczne.
W zestawie nie ma bibliotek ułatwiających pracę z wybranymi typami mikrokontrolerów, konieczne jest więc zastosowanie bibliotek opracowanych przez ich producentów (np. bazujących na CMSIS w przypadku rdzeni Cortex-M) - praktycznie każdy producent udostępnia takie na swojej stronie internetowej.
Podstawowe informacje o mbed:
|
Podobną drogą poszli twórcy pakietu Coocox, którzy przygotowali system programistyczny składający się z kilku części, które integrują się podczas instalacji, kilka prostych i dobrze opisanych zabiegów niezbędnych jest po instalacji kompilatora ARM-GCC.
Wygląd IDE zastosowanego w pakiecie Coocox do złudzenia przypomina Arduino (rysunek 2), podobne API mają także biblioteki do obsługi interfejsów komunikacyjnych i niektórych innych bloków peryferyjnych, co ułatwi rozpoczęcie pracy początkującym programistom. Opcjonalnym elementem wyposażenia pakietu jest graficzny konfigurator przypisań linii GPIO o nazwie Co-Smart (rysunek 3).
Coocox jest stosunkowo nowym zjawiskiem na rynku, powstał jako środowisko dla użytkowników najnowszych mikrokontrolerów, stąd jego orientacja pod kątem mikrokontrolerów wyposażonych w rdzenie Cortex-M, w tym także najnowszych na rynku mikrokontrolerów z rdzeniem Cortex-M0+ (Kinetis L firmy Freescale).
Interesującym dodatkiem do środowiska Coocox jest także internetowe narzędzie o nazwie CoAssistant, które nie wymaga instalacji i umożliwia przechowywanie ustalonych konfiguracji rejestrów wybranych mikrokontrolerów w sieci (co wymaga założenia bezpłatnego konta).
Inną drogą poszli twórcy systemu o nazwie mbed (rysunek 4), który jest jedynym kompletnym środowiskiem projektowym dla mikrokontrolerów z rdzeniami ARM dostępnym wyłącznie w Internecie. Dzięki temu nie wymaga instalacji i związanych z tym zabiegów konserwacyjno-konfiguracyjnych, a jego zarejestrowani użytkownicy mogą korzystać z zalet jednego z najlepszych na świecie kompilatorów języków C/C++ na ARM - ARM RVDS w wersji 4.1 (grudzień 2012).
Podstawowe informacje o Sourcery Code- Bench Lite:
|
Środowisko mbed powstało jako narzędzie dla konstruktorów korzystających z modułów prototypowych mbed z mikrokontrolerami wyposażonymi w rdzenie Cortex-M produkowanymi przez firmę NXP. Jest to z jednej strony jego zaleta, z drugiej poważna wada, bowiem na rynek trafiły dwa takie moduły: jeden z mikrokontrolerem LPC11U24 (Cortex-M0), drugi z mikrokontrolerem LPC1768 (Cortex-M3 - fotografia 5).
Z informacji jakie posiadamy, nie ma nadziei na szybkie poszerzenie listy dostępnych modułów o kolejne, jest to więc narzędzie dla osób zdecydowanych na przygotowywanie aplikacji wyłącznie dla wymienionych mikrokontrolerów.
Twórcy środowiska mbed przewidzieli możliwość eksportu projektów realizowanych za jego pomocą do projektów dla narzędzi pochodzących od innych producentów (rysunek 6): Vision, Code Red, CodeSourcery oraz GCC-ARM.
Prezentowane narzędzie wyposażono w pakiet bibliotek zapewniających obsługę bloków peryferyjnych mikrokontrolerów zastosowanych w modułach mbed, a środowisko programistów korzystających z prezentowanego oprogramowania wspólnie rozwija wiele projektów programistycznych, które zwiększają jego walory użytkowe.
Bardzo efektownym i dobrze wyposażonym, bezpłatnym narzędziem dla programistów mikrokontrolerów z rdzeniami ARM firmy NXP jest pakiet LPCXpresso 5 (rysunek 7). Obsługuje on wszystkie produkowane przez NXP "małe" mikrokontrolery z rdzeniami Cortex-M0, Cortex-M3 i Cortex-M4, wybrane mikrokontrolery z rdzeniem ARM7TDMI oraz ARM9.
Wersja bezpłatna tego pakietu ma ograniczenie maksymalnej objętości kodu wynikowego do 128 kB i obsługuje stosunkowo niewielką listę programatorów-debuggerów, które są dość kosztowne (nie dotyczy to LPC-Linka), do tego słabo znanych w naszym kraju.
Środowisko LPCXpresso 5 jest domyślnym narzędziem do realizacji projektów na zestawach startowych LPCXpresso (rysunek 8), które są oferowane w szerokim wyborze z różnymi mikrokontrolerami "na pokładzie", a każdy z nich jest wyposażony w programator-debugger LPC-Link.
Najbardziej oryginalnym w tym zestawieniu pakietem jest rozpowszechniany przez firmę Mentor Graphics Sourcery CodeBench w bezpłatnej wersji Lite Edition. W pełnej wersji bazuje on na bezpłatnych składnikach, stosowanych przez wielu innych integratorów oprogramowania narzędziowego: IDE Eclipse, kompilatorze, debuggerze i linkerze GNU, ale... w wersji bezpłatnej Eclipse jest zablokowany!
Oznacza to, że programista ma do dyspozycji wyłącznie linię poleceń, co dobie "okienek" zniechęci większość potencjalnych użytkowników, a jeśli dodać do tego inne ograniczenia nałożone na wersję Lite przez producenta (jak na przykład brak obsługi debuggera, brak możliwości współpracy z interfejsami JTAG itd.), to propozycję firmy Mentor Graphics należy traktować jako słaby żart.
Sensowna, z punktu widzenia przeciętnego użytkownika, wersja tego pakietu o nazwie Sourcery CodeBench Personal Edition nie jest przesadnie kosztowna ("od" 100 USD w USA), ale jej możliwości nie są przesadnie mocnym magnesem w świetle bezpłatnych rozwiązań przedstawionych w artykule.
Andrzej Gawryluk