Debugowanie projektów w środowisku Keil MDK
| TechnikaDebuger jest częścią środowiska Arm Keil MDK i służy do analizy 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. Narzędzie umożliwia uruchamianie, zatrzymywanie, wykonywanie kroków programu, używanie punktów przerwania, monitorowanie wybranych elementów programu i zasobów mikrokontrolera.
Aby rozpocząć debugowanie w środowisku programistycznym, należy przycisnąć ikonę w pasku zadań. Aby zatrzymać sesję, należy ponownie tę czynność wykonać. Po zakończeniu pracy i wyjściu z sesji wszystkie ustawienia okna zostaną automatycznie zapisane. Ustawienia te zostaną przywrócone przy następnym uruchomieniu sesji dla tego projektu.
Okna "źródło" i "demontaż"
Okno "źródło" znajdujące się w środku okna debugowania 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 żądane archiwum.
Okno "demontaż" (disassembly) znajduje się bezpośrednio nad "źródłem" i wyświetla "zdemontowany" kod odpowiadający aktualnie otwartemu plikowi. Jeśli źródłem jest język C, plik zdemontowany pokazuje kod asemblerowy wygenerowany przez kompilator dla każdej instrukcji C. Wyświetlany jest także szesnastkowy adres pamięci i kod obiektu dla wszystkich instrukcji asemblera.
Uruchamianie i monitorowanie programu
Program może być wykonywany instrukcja po instrukcji, wykonywany do punktu przerwania lub po prostu bez zatrzymywania. Przebieg programu kontrolowany jest za pomocą ikon w lewej części paska narzędzi, bezpośrednio nad oknem "rejestrów".
Jeśli chodzi o monitorowanie zmiennych programu i zasobów systemowych, to do tego celu istnieje kilka okien debugowania, które wyświetlają przydatne informacje podczas realizacji programu, w tym zmienne, rejestry procesora, pamięć systemową i funkcje peryferyjne mikrokontrolera. Okna te dynamicznie się aktualizują, 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 i każde z nich, co zostało przedstawione na ilustracji, ma określony początek adresu bloku pamięci, który ma zostać wyświetlony. Wpisuje się go w polu adresu, pamiętając o tym, że wartości szesnastkowe zaczynają się od "0x". 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 oprogramowaniem i integralną częścią środowiska MDK z założenia służy do szukania błędów podczas tworzenia warstwy oprogramowania aplikacji. Poza podstawową funkcjonalnością ma on wiele dodatkowych zalet. Jedną z nich jest możliwość podglądu zmiennych w danym momencie wykonywania programu, opcja dokonywania analiz, zatrzymywania programu w dowolnym momencie. Są to funkcje, które znacząco mogą wpłynąć na jakość kodu poprzez dostarczenie wielu informacji, między innymi o czasie wykonania programu czy wartościach chwilowych znajdujących się w rejestrach. 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 na skrócenie czasu trwania projektu.
Grzegorz Cuber
Computer Controls Sp. z o.o.
tel. 33 485 94 90
www.ccontrols.pl