Pakiety narzędziowe dla programistów. cz. 2

Pakiety narzędziowe dla programistów. cz. 2
Pobierz PDF Download icon
Era drogich pakietów narzędziowych dla programistów dobiega końca, standardem stają się narzędzia coraz bardziej rozbudowane funkcjonalnie dostępne bezpłatnie lub w cenach możliwych do zaakceptowania przez małe firmy, a nawet osoby prywatne. W artykule przedstawiamy dalszy ciąg przeglądu podstawowych cech i możliwości wybranych, bezpłatnych narzędzi dla programistów mikrokontrolerów ARM, przygotowujących aplikacje dla współczesnych mikrokontrolerów.

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:

  • składa się z: Coocox IDE, kompilatora GCC, programu do programowania Flash CoFlash, CoLinkEx, opcjonalnego systemu operacyjnego CoOS, konfiguratora wyprowadzeń mikrokontrolerów CoSmart oraz internetowego systemu zarządzania rejestrami mikrokontrolerów CoAssistant,
  • obsługuje wszystkie rdzenie ARM Cortex-M,
  • dostępne biblioteki z obsługą interfejsów peryferyjnych,
  • obsługuje wiele typów debuggerów bazujących na układach firmy FTDI, a także interfejsy ZL30PRG, ST-Link, ST-Link/V2 oraz OpenSDA,
  • dostępny bezpłatnie pod adresem http://www.coocox.org

Uniwersalne pakiety programistyczne

Rysunek 1. Ekran YAGARTO GNU toolchain

"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:

  • składa się z: IDE Eclipse, GCC-4.7.2, Binutils-2.22, Newlib-1.20.0, GDB-7,
  • obsługuje wszystkie wersje rdzeni ARM,
  • brak bibliotek dla konkretnych rodzin mikrokontrolerów,
  • obsługuje wszystkie typy debuggerów bazujących na układach firmy FTDI, a także Segger J-Link, także w wersji EDU,
  • dostępny bezpłatnie pod adresem http://www.yagarto.de

Rysunek 2. Wygląd IDE zastosowanego w pakiecie Coocox

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:

  • kompletne środowisko projektowe z kompilatorem C,
  • ograniczenie objętości pliku wynikowego: 128 kB,
  • obsługuje mikrokontrolery firmy NXP: LPC1100/1200, LPC1300/1700/1800, LPC4000, LPC2109/2134/2142, LPC2362, LPC2929, LPC3130, LPC3130 i LPC3250,
  • obsługuje programatory-debuggery: Red Probe+, RDB-Link, Redlink, LPC-Link,
  • dostępne biblioteki funkcji dla wybranych zestawów startowych z mikrokontrolerami firmy NXP,
  • dostępny bezpłatnie pod adresem http://www.code-red-tech.com

Rysunek 3. Wygląd konfiguratora połączeń linii I/O

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:

  • kompletne środowisko projektowe z kompilatorem C/C++ i systemem zarządzania wersji, dostępne wyłącznie poprzez przeglądarkę internetową,
  • wykorzystywany kompilator ARM RVDS 4.1,
  • obsługuje wyłącznie mikrokontrolery NXP: LPC11U24 (Cortex-M0) oraz LPC1768 (Cortex-M3) na płytkach mbed,
  • obsługuje programator-debugger wbudowany w moduły mbed,
  • dostępne biblioteki z obsługą interfejsów peryferyjnych,
  • dostępny bezpłatnie pod adresem http://www.mbed.org

Rysunek 4. System 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).

Fotografia 5. Moduł mbed z mikrokontrolerem LPC1768 (Cortex-M3)

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 projektowe z kompilatorem C, pozbawione IDE i debuggera,
  • obsługuje wszystkie rdzenie oferowane przez ARM,
  • dostępny bezpłatnie pod adresem http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/

Rysunek 6. Środowiska, do których można wyeksportować projekt mbed

Ś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.

Rysunek 7. Pakiet LPCXpresso 5 od NXP

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.

Rysunek 8. Ogólny wygląd zestawu LPCXespresso

Ś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

Artykuł ukazał się w
Styczeń 2013
DO POBRANIA
Pobierz PDF Download icon
Zobacz też
Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik lipiec 2020

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio lipiec 2020

Świat Radio

Magazyn użytkowników eteru

APA - Automatyka Podzespoły Aplikacje lipiec 2020

APA - Automatyka Podzespoły Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna lipiec 2020

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Praktyczny Kurs Elektroniki 2018

Praktyczny Kurs Elektroniki

24 pasjonujące projekty elektroniczne

Elektronika dla Wszystkich czerwiec 2020

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów