Debugowanie projektów w środowisku Keil MDK. Charakterystyka Debuggera Arm Keil MDK

Debugowanie projektów w środowisku Keil MDK. Charakterystyka Debuggera Arm Keil MDK

Debugger jest częścią środowiska Arm Keil MDK i służy do analizy kodu programów w celu znalezienia i wyeliminowania błędów. Program ten sprawuje kontrolę nad wykonaniem kodu tworzonego przez programistę. Pozwala na śledzenie obiektów, atrybutów i kontrolowanie wykonania programu.

Celem debugowania jest rozpoznanie błędu w programie, znalezienie jego miejsca i przyczyny powstania, a następnie usunięcie go. Okno debugowania w Keil MDK jest takie samo, bez względu na to, czy debuguje się w sprzęcie docelowym, czy w symulatorze. Debugger umożliwia uruchamianie, zatrzymywanie, wykonywanie kroków programu, używanie punktów przerwania, monitorowanie wybranych elementów programu i zasobów mikrokontrolera (rysunek 1).

Rysunek 1. Widok różnorodności funkcji narzędzia do debugowania

Aby rozpocząć debugowanie w środowisku programistycznym należy przycisnąć ikonę w pasku zadań. Aby zatrzymać sesję debugowania należy ponownie tę czynność wykonać. Po wyjściu z sesji debugowania wszystkie ustawienia okna zostaną automatycznie zapisane. Ustawienia zostaną przywrócone przy następnym uruchomieniu sesji dla tego projektu.

Okno „Źródło”

Okno znajdujące się w środku okna debuggowania wyświetla kod programu w wybranym pliku projektu, w języku używanym przez programistę (C, C++, Asembler itp.). Kliknięcie zakładki u góry okna wyświetla kod źródłowy tego pliku. Istnieje również możliwość wyświetlenia pliku źródłowego, który nie ma zakładki w tym oknie. Można dodać go z paska menu, wybierając Plik → Otwórz, a następnie wybierając żądany plik.

Okno „Demontaż” (Disassembly)

Okno znajdujące się bezpośrednio nad oknem „Źródło” wyświetla „zdemontowany” kod odpowiadający plikowi aktualnie otwartemu. Jeśli źródłem jest plik C, plik zdemontowany pokazuje kod w języku Asemblera wygenerowany przez kompilator dla każdej instrukcji C. Wyświetlany jest także szesnastkowy adres pamięci i kod obiektu dla wszystkich instrukcji języka Asemblera.

Uruchamianie programu

Program może być wykonywany w sposób „instrukcja po instrukcji”, wykonywany do punktu przerwania lub po prostu bez zatrzymywania się. Przebieg programu kontrolowany jest za pomocą ikon w lewej części paska narzędzi, bezpośrednio nad oknem „Rejestrów”.

Monitorowanie zmiennych programu i zasobów systemowych

Istnieje kilka okien debugowania, które wyświetlają przydatne informacje podczas realizacji programu, w tym zmienne, rejestry procesora, pamięć systemową i funkcje peryferyjne mikrokontrolera (rysunek 2).

Rysunek 2. Narzędzia pozwalają na podgląd różnych parametrów mikrokontrolera

Okna te będą dynamicznie się aktualizować, aby można było określić ich stan i monitorować, czy program działa zgodnie z oczekiwaniami.

Okna „Pamięci”

Służą do wyświetlania zawartości wybranych adresów w pamięci. Maksymalnie mogą być otwarte cztery okna. Każde z nich, co zostało pokazane na rysunku 3, ma określony początek adresu bloku pamięci, który ma zostać wyświetlony. Wpisuje się go w polu „Adress”, pamiętając o tym, że wartości szesnastkowe zaczynają się od „0x”.

Rysunek 3. Widok okna obrazującego zawartość pamięci

W przeciwnym razie adres będzie interpretowany jako wartość dziesiętna. Format danych można dowolnie zmieniać, aby ułatwić ich badanie, klikając prawym przyciskiem myszy.

Wnioski

Debugger, będąc bardzo pomocnym komponentem oprogramowania, jest integralną częścią środowiska MDK. Z założenia służy do szukania błędów podczas tworzenia aplikacji. Moim zdaniem oprócz tej podstawowej funkcjonalności, posiada on wiele dodatkowych zalet. Jedną z nich jest możliwość podglądu zmiennych w danym momencie wykonywania programu, inną – opcja dokonywania analiz, przy zatrzymaniu programu w dowolnym momencie. Są to funkcje, które znacząco mogą wpłynąć na jakość kodu, poprzez dostarczenie wielu danych, miedzy innymi o czasie wykonania programu, czy wartościach chwilowych rejestrów. Podsumowując, Debugger MDK jest przydatnym oprzyrządowaniem w pracy programisty, które może wpłynąć dodatkowo zarówno na optymalizację tworzonego kodu, jak również na skrócenie czasu trwania projektu.

Grzegorz Cuber
FAE Computer Controls

Więcej informacji: Computer Controls Sp. z o.o.
43-300 Bielsko-Biała, ul. Budowlanych 1, tel. 33 485 94 90, faks 33 472 04 20
info@ccontrols.pl, www.ccontrols.pl
Artykuł ukazał się w
Kwiecień 2020
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 lipiec 2020

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów