Przegląd oraz analiza funkcjonalności programatorów rdzeni ARM

| Technika

Na rynku systemów wbudowanych istnieje obecnie co najmniej kilka rozwiązań służących do komunikacji pomiędzy komputerami PC a mikroprocesorami. Urządzenia te, zwane adapterami, debuggerami lub programatorami, służą przede wszystkim do wgrywania kodu w języku zrozumiałym dla mikroprocesora, jak również do analizy jego pracy. Debuggery stanowią element łączący pomiędzy komputerem PC a sprzętem docelowym.

Przegląd oraz analiza funkcjonalności programatorów rdzeni ARM

Urządzenia komunikują się ze sobą za pomocą interfejsu USB po stronie PC, a JTAG lub SWD po stronie docelowego układu. Komunikacja ta umożliwia z jednej strony wgranie programu, z drugiej analizę i kontrolę kodu pod względem występujących błędów oraz jego optymalizację. Najbardziej wszechstronnymi i uniwersalnymi urządzeniami dedykowanymi do największej grupy odbiorców są urządzenia typu ULINK firmy ARM.

W ofercie firmy ARM możemy wyróżnić kilka typów programatorów/debuggerów serii ULINK, znajdujących zastosowanie w obsłudze rdzeni ARM różnych producentów. W zależności od oczekiwanej funkcjonalności oraz procesorów, z którymi będą współpracowały, należy dokonać wyboru spośród dostępnego asortymentu.

W artykule przedstawiona zostanie analiza funkcjonalności urządzeń ULINK wraz z ich przeznaczeniem, mająca na celu wspomóc użytkownika przy wyborze odpowiedniego rozwiązania.

Pod względem funkcjonalności urządzenia ULINK mają wiele cech, pozwalających deweloperom na bardziej kreatywną i wydajną pracę. Wszystkie umożliwiają wgranie programów do sprzętu docelowego opartego na technologii ARM.

Poza tym pozwalają na analizę zawartości pamięci i rejestrów oraz testowanie programów w czasie rzeczywistym. Potrafią także zaprogramować pamięć Flash. Przy wyborze ULINK-a warto jednak zapoznać się z różnicami pomiędzy poszczególnymi modelami, mając na uwadze dodatkową funkcjonalność, interfejsy czy prędkości wymiany danych (patrz tabela).

ULINK2 i ULINK Pro

Tabela porównawcza debuggerów ULINK

ULINK 2 używa połączenia USB do komputera PC, natomiast drugą stronę interfejsu stanowią łącza JTAG, Cortex i OCDS. ULINK 2 bardzo dobrze współpracuje z Corteksami serii M poprzez SWD (Serial Wire Debug) oraz SWV (Serial Wire Viewer).

Poprzez interfejs JTAG natomiast współpracuje z ARM7 i ARM9 (Real Time Agent). Jego słabą stroną jest prędkość pracy i wymiany danych. Debuggery ULINK 2 mają jednak wiele zalet wynikających ze współpracy z popularnymi rdzeniami mikrokontrolerów Cortex M, a także zapewniają obsługę rdzeni serii 8051 oraz C166.

Podsumowując, ULINK 2 jest urządzeniem, które może być doskonałym wyborem dla programistów, którzy korzystają z szerszej gamy procesorów, również starszej technologii. W połączeniu z niewysoką ceną zakupu ULINK2 może stać się tańszą alternatywą dla wersji Pro, która ma dodatkowo złożone funkcje analizy.

ULINKpro ma funkcje debugowania i śledzenia przy użyciu interfejsu USB PC, a z systemem docelowym poprzez JTAG, Cortex Debug lub Cortex Debug + złącze ETM. Wyróżnia się na tle pozostałych urządzeń tym, że obsługuje mechanizmy CoreSight, w tym blok ETM oraz realizuje streaming trace, czyli "ślad strumieniowy".

Dzięki unikalnym możliwościom ULINKpro w zakresie przesyłania strumieniowego, zapewnione zostały zaawansowane funkcje analityczne, w tym kompletne informacje o wykonaniu programu oraz weryfikacja aplikacji.

Funkcja śledzenia strumieniowego umożliwia rejestrację danych, które zapisywane są bezpośrednio na dysku twardym komputera z dużą prędkością (do 800 Mb/s). Ograniczenia związane są tylko z wielkością dysku w komputerze z programem μVision MDK.

Śledzenie instrukcji przesyłania strumieniowego możliwe jest do realizacji debuggerem ULINKpro, tylko gdy urządzenie docelowe ma ETM (Embedded Trace Macrocell). Z kolei analiza wydajności za pomocą programu ProfiExecution i Performance Analyzer umożliwia identyfikację wąskich gardeł programów oraz optymalizację aplikacji.

Funkcja ULINKpro, jaką jest śledzenie instrukcji, umożliwia MDK wykonywanie pełnego zabezpieczenia kodu programu. Pokrycie kodu (code coverage) identyfikuje wykonanie całego programu, instrukcja po instrukcji, zapewniając dokładne testowanie aplikacji. Takie dokładne testowanie programu jest niezbędnym warunkiem do weryfikacji i certyfikacji oprogramowania.

Podsumowując, ULINKpro jest profesjonalnym narzędziem umożliwiającym obsługę zawansowanych funkcji analizy, co pozwala w pełni wykorzystać mechanizmy debuggera technologii CoreSight oraz oprogramowania MDK ARM Keil. ULINKpro przeznaczony jest do pracy z rdzeniami Cortex-M oraz ARM7 i ARM9.

W ofercie firmy ARM występuje także ULINKproD, który znalazł głównie zastosowanie w aplikacjach DS-5 i stanowi tańsze rozwiązanie w stosunku do wersji PRO, gdyż nie został wyposażony w funkcjonalność ETM trace.

Adapter izolujący to opcjonalne akcesorium, które zapewnia izolację elektryczną między systemem docelowym a urządzeniem do debugowania i śledzenia ULINKpro. Izolacja elektryczna jest niezbędna podczas pracy z systemami, które mogą generować impulsy wysokiego napięcia (na przykład układy sterowania silnikiem) lub gdy nie ma wspólnego uziemienia. Adapter wykorzystuje technologię cyfrowej izolacji sygnału, która umożliwia obsługę szybkiego debugowania i śledzenia, a także obsługuje szeroki zakres napięcia docelowego.

Za miesiąc w drugiej części artykułu przedstawione zostaną ULINKplus oraz DSTREAM.

Grzegorz Cuber FAE
Computer Controls Sp. z o.o.