(4) Mikrokontrolery MSP430: obsługa programatora i opcje emulatora wbudowanego w zestaw MSP-EXP430FR5739

Opcje emulatora

Jednym z komponentów środowiska IAR EW jest emulator. Opcje emulatora zademonstrujemy na przykładzie programu Oblicz_PI. Program należy pobrać z działu downloads. W programie na podstawie poniższego wzoru jest obliczana wartość liczby π.

 

 

Uruchamiamy projekt i w opcjach projektu (Project->Options) sprawdzamy czy wyjście linkera jest ustawione na format Debug information for C-SPY. Jeśli nie jest, to wprowadzamy ustawienia jak na rysunku 10. Zatwierdzamy je przyciskiem OK.

 Rys.10. IAR EW - tworzenie pliku wynikowego emulatora, konfiguracja linkera

Rys.10. IAR EW – tworzenie pliku wynikowego emulatora, konfiguracja linkera

Następnie kompilujemy projekt ( | Project->Compile | Ctrl+F7), linkujemy  pliki projektu ( | Project->Make | F7) i programujemy mikrokontroler z  włączona opcją emulatora ( | Project->Download and Debug | Ctrl+D). Uruchamiany jest emulator projektu (rysunek 11).

Rys.11. IAR EW - okno emulatora, projekt Oblicz PI: a) kod źródłowy programu b) kod maszynowy programu c) okno komunikatów emulatora 

Rys.11. IAR EW – okno emulatora, projekt Oblicz PI: a) kod źródłowy programu b) kod maszynowy programu c) okno komunikatów emulatora

Pracą mikrokontrolera możemy sterować przy pomocy poleceń zestawionych w tabeli 1.

Tab. 1. Ikony i polecenie służące do sterowania pracą mikrokontrolera w emulatorze zintegrowanym w środowisku IAR EW

Przycisk Menu -> Debug Skrót klawiszowy Opis
Reset Restart mikrokontrolera
Break Przerwanie pracy mikrokontrolera
Step Over F10 Pojedynczy krok, bez wchodzenia do funkcji
Step Into F11 Wejście od funkcji
Step Out Shift + F11 Wyjście z funkcji
Run to Cursor Wykonaj program do miejsca ustawienia kursora. Zatrzymaj pracę mikrokontrolera w miejscu ustawienia kursora
Go F5 Uruchom pracę mikrokontrolera

 

W kodzie źródłowym programu możemy ustawiać pułapki sprzętowe. Umieszczamy kursor w miejscu w którym chcemy ustawić pułapkę sprzętową i wciskamy przycisk: . Ten sam efekt uzyskamy wybierając z zakładki Edit polecenie Toggle Breakpoint lub stosując skrót klawiszowy F9. Żeby zdjąć pułapkę sprzętową postępujemy w analogiczny sposób.

 

Emulator środowiska IAR EW pozwala nam na dostęp do zmiennych programu (odczyt, oraz modyfikacja). Podstawowe opcje dostępu przedstawiono w tabeli 2.

 Tab. 2. Wybrane opcje dostępu do zmiennych programu

Menu -> View Opis
Watch Podgląd i modyfikacja zmiennych oraz wyrażeń wskazanych przez programistę. Żeby dodać zmienną/wyrażenie do okna Watch zaznaczmy zmienną/wyrażenie w programie, wciskamy prawy przycisk myszki i wybieramy opcję: Add to Watch. Zmienne/wyrażenia można także dodawać bezpośrednio w oknie Watch. Należy kliknąć w pole click to edit i wprowadzić nazwę zmiennej, albo zdefiniować wyrażenie. Wyrażeniem w oknie Watch może być formuła matematyczna, rejestr procesora, itp.
Locals Podgląd i modyfikacja zmiennych lokalnych
Statics MPodgląd i modyfikacja statycznych zmiennych globalnych

 

Wartość zmiennych, oraz wyrażeń, może być prezentowana w jednym z kilku formatów (binarnie, dziesiętnie, heksadecymalnie, itd.). Format prezentacji danych ustalamy klikając prawym przyciskiem myszki na zmienną/wyrażenie i wybierając jedną z dostępnych opcji. (rysunek 12)

 Rys. 12. IAR EW - okno emulatora: a) Watch b) Statics c) Locals d) konfiguracja formatu prezentacji danych

Rys. 12. IAR EW – okno emulatora: a) Watch b) Statics c) Locals d) konfiguracja formatu prezentacji danych

 Korzystając z emulatora środowiska IAR EW możemy również uzyskać dostęp do rejestrów mikrokontrolera (View-> Register). Możemy odczytywać, a także modyfikować poszczególne bity konfiguracyjne rejestrów. Możliwy jest również dostęp do pamięci mikrokontrolera (View->Memory) oraz odczyt wywołań stosu programu (View->Call Stack). Okno emulatora z włączonymi opcjami „rejestry/pamięć/wywołania stosu” pokazano na rysunku 13.

Rys. 13. IAR EW - okno emulatora: a) rejestry mikrokontrolera – moduł licznika TimerA 

Rys. 13. IAR EW – okno emulatora: a) rejestry mikrokontrolera – moduł licznika TimerA b) wywołania stosu – funkcja main c) pamięć mikrokontrolera – obszar pamięci FRAM

 Wróćmy do projektu Oblicz PI. W oknie emulatora (rysunek 11) zamykamy zakładkę kodu maszynowego (b), oraz zakładkę komunikatów emulatora (c). Dodajemy zakładkę Watch (View->Watch) i ustawiamy dostęp do zmiennej globalnej pi_2 (połowa wartości liczby P), dostęp do zmiennej lokalnej n (argument funkcji Pi), oraz wprowadzamy wyrażenie pi_2 *2 (wartość liczby P). Następnie uruchamiamy pracę mikrokontrolera ( | Debug -> Go | F5). Wygląd okna emulatora ilustruje rysunek 14.

Rys. 14. IAR EW - okno emulatora: projekt Oblicz PI, uruchomienie pracy mikrokontrolera MSP430 

Rys. 14. IAR EW – okno emulatora: projekt Oblicz PI, uruchomienie pracy mikrokontrolera MSP430

 Następnie kursor myszki ustawiamy w linii numer 23 (wywołanie procedury obliczającej wartość liczby π) oraz ustawiamy pułapkę sprzętową ( | Edit ->Toggle Breakpoint | F9). Praca mikrokontrolera zostaje zatrzymana „na pułapce”. W oknie Watch są wyświetlane uaktualnione wartości zmiennych n, pi_2 oraz nowo obliczono wartość formuły pi_2*2. W przykładzie demonstrowanym na rysunku 15 po zrealizowaniu 2200 iteracji algorytmu (n = 2200) obliczona wartość liczby π wynosi: 3,14123559356554 (zgodność ze wzorcem liczby π wynosi 3 cyfry po przecinku).

 Rys. 15. IAR EW - okno emulatora: projekt Oblicz PI, zatrzymanie pracy MSP430

Rys. 15. IAR EW – okno emulatora: projekt Oblicz PI, zatrzymanie pracy MSP430

 Żeby uzyskać bardziej precyzyjną wartość liczby π, usuwamy pułapkę sprzętową ( | Edit ->Toggle Breakpoint | F9) i ponownie uruchomić pracę mikrokontrolera ( | Debug -> Go | F5). Po pewnym czasie ponownie ustawiamy pułapkę sprzętową, a praca mikrokontrolera zostaje zatrzymana. Wówczas z okna Watch odczytujemy nową wartość liczby π. Pracując z emulatorem możemy również używać pozostałych funkcji sterujących MSP430 opisanych w tabeli 1. W praktyce bardzo użyteczne są funkcje pojedynczego kroku ( | Step Over | F10), wejścia do funkcji ( | Step Into | F11), oraz wyjścia z funkcji( | Step Out | Shift + F11). Działanie tych oraz innych funkcji emulatora można przećwiczyć korzystając z omawianego projektu Oblicz PI. Żeby zakończyć pracę emulatora wciskamy przycisk . Ewentualnie z zakładki Debug wybieramy opcje Stop Debugging albo używamy skrótu klawiszowego Ctrl+Shift+D.

 

 

Do pobrania

O autorze