Na rynku dostępne są różnorodne narzędzia dla programistów przygotowujących aplikacje na mikrokontrolerowy ARM, z których najczęściej są stosowane zintegrowane środowiska programistyczne składające się z IDE, kompilatorów, debuggerów, w niektórych przypadkach także programowych symulatorów oraz narzędzi pomocniczych. Od takich właśnie pakietów zaczniemy nasz przegląd.
Nadal najpopularniejszym pakietem narzędziowym wśród programistów piszących aplikacje dla mikrokontrolerów wyposażonych w rdzenie ARM w naszym kraju jest MDK-ARM firmy ARM (dawniej Keil). Napisałem „nadal”, bowiem producent tego narzędzia nie rozpieszcza swoich fanów, którzy są zmuszeni do kupowania stosunkowo drogich wersji komercyjnych tego narzędzia, producent – niestety – nie oferuje rozwiązań „budżetowych”, co jest to usprawiedliwione wysoką jakością tego narzędzia. W pewnym stopniu sytuację ratują dedykowane wersje oprogramowania – dzięki współpracy z producentami mikrokontrolerów – udostępniane bezpłatnie, ale ograniczone do wybranej rodziny mikrokontrolerów. Dla prostych aplikacji alternatywą jest także dostępna bezpłatnie wersja Lite, która umożliwia kompilowanie programów o objętości kodu wynikowego do 32 kB.
Standardowym wyposażeniem wszystkich wersji MDK są biblioteki CMSIS (tabela 1), system operacyjny CMSIS-RTOS RTX, wersja najdroższa – MDK-Professional – jest dostarczana także z kompletem bibliotek obsługujących interfejsy komunikacyjne, w tym TCP/IP, USB Device i Host, interfejs CAN, system plików FAT oraz interfejsy graficzne. Nowe wersje pakietu MDK-Professional będą obsługiwać także architektury ARMv8-M oraz dwurdzeniowe Cortex-A/Cortex-M.
Pakiet MDK-ARM jest przystosowany do współpracy z większością popularnych interfejsów programująco-debugujących (m.in. J-Link firmy Segger, ST-Link firmy STMicroelectronics, OpenSDA, Nuvoton Nu-Link), jest także przystosowany do łatwego upgarde’owania (poprzez dodanie odpowiednich bibliotek DLL) obsługi nowych interfejsów. Producent pakietu oferuje jego użytkownikom własne interfejsy – serię urządzeń o nazwie ULink – których rodzina składa się obecnie z trzech modeli:
- ULINKproD (fotografia 3) – interfejs przystosowany do współpracy z interfejsami zasilanymi napięciem od 1,2 V, obsługą SWO do 100 Mb/s, obsługiwany przez obydwa IDE,
- ULINKpro – interfejs przystosowany do współpracy z interfejsami zasilanymi napięciem od 1,2 V, obsługą SWO do 100 Mb/s, ETM do 800 Mb/s, obsługiwany przez obydwa IDE.
Pakiet MDK-ARM jest oferowany w czterech podstawowych wersjach, których najważniejsze cechy zestawiono w tabeli 1.
Dużą elastycznością oraz zaawansowanymi możliwościami funkcjonalnymi charakteryzuje się także pakiet Embedded Workbench firmy IAR. Jest on w naszym kraju nieco mniej popularny niż MDK, ale oferuje nie mniejsze możliwości, zwłaszcza podczas projektowania i optymalizacji systemów energooszczędnych. Firma IAR wyposażyła pakiet Workbench w pluginy umożliwiające współpracę ze wszystkimi liczącymi się systemami na rynku (m.in. AVIX, CMX-RTX, e-Force µC3/Compact, FreeRTOS, OpenRTOS, SafeRTOS, Freescale MQX, Micrium µC/OS-III, Quadros RTXC, Segger embOS). IAR Workbench używa własnego IDE (rysunek 4), o nieco innym sposobie obsługi niż wcześniej prezentowany MDK, ale rozwiązanie proponowane przez firmę IAR ma także wielu zwolenników, dostępne są także narzędzia integrujące środowisko Workbench pod „skrzydłami” Eclipse.
Atollic TrueSTUDIO
Firma Atollic opracowując pakiet TrueSTUDIO wybrała inną drogę niż firmy, których narzędzia przedstawiliśmy dotychczas: zamiast budować własne oprogramowanie od podstaw, jej inżynierowie wykorzystali oprogramowanie open-source (IDE Eclipse, kompilator ARM-GCC, serwer debuggera gdbsever), które charakteryzuje się – w wersjach natywnych – trudną instalacją, koniecznością wykonywania wielu ręcznych modyfikacji i poprawek, a także monitorowania zmian wprowadzanych przez zespoły freelancerów rozwijających oprogramowanie.
Wersja komercyjna TrueSTUDIO Pro jest wyposażona w zaawansowane narzędzia profilujące, debugujące i optymalizujące projekty, które odróżniają je od bezpłatnej wersji TrueSTUDIO, wśród nich m.in.: CPU Fault Analyzer, Statistic Profiler, Exception and Interrupt Tracing, Instruction Tracing, Real-Time Data Access Tracing, a także możliwość debugowania pracy systemów wielordzeniowych.
Pakiet TrueSTUDIO nie został przez producenta wyposażony w zintegrowany system operacyjny, ale może współpracować z kilkoma systemami komercyjnymi (m.in. HCC-Embedded eTaskSync, Micrium uC/OS, CMX-RTX/CMX-TINY+, Express Logic ThreadX, FreeRTOS, Segger embOS, HighIntegritySystems/Wittenstein OpenRTOS/SafeRTOS, Code Time Technologies Abassi, Quadros RTXC).
Podsumowanie
W tej części artykułu przedstawiliśmy trzy najpopularniejsze w naszym kraju, komercyjne pakiety narzędziowe dla mikrokontrolerów z rdzeniami firmy ARM. Oferowane przez niektórych producentów mikrokontrolerów pakiety bezpłatne oraz dodatkowe narzędzia programowe dla programistów przedstawimy w kolejnych wydaniach EP.
Tomasz Starak, EP