Renesas Synergy – pierwszy projekt w e2studio

Po automatycznym zainstalowaniu się sterownika J-Link można przejść do sprzętowego debugowania naszego programu migania diodami LED. Kiedy debugger J-link jest podłączony do komputera, to otwiera się automatycznie okno Segger J-Link Control panel – rysunek 15.

 

Rys. 15. Okno sterujące sprzętowego debuggera Segger J-Link

 

Debugowanie jest uruchamiane po kliknięciu na ikonkę przypominającą owada (rysunek 16) i wybraniu Debug As->Renesas GDB Hardware Debugging.

 

Rys. 16. Uruchamianie debugowania w środowisko e2studio

 

Debbuger programu e2studio działa podobnie jak w środowiskach IDE innych producentów. Do sterowania debugowaniem używa się następujących ikonek:

 uruchom program

 zatrzymaj program

 zakończ debugowanie

 odłącz proces debugowania

 wykonanie jednego kroku programu z wejściem do funkcji

 wykonanie całej funkcji

 krok powrotu

 debugowanie instrukcji assemblera

 usuń wszystkie punkty zatrzymania (breakpoints)

 zapisz program do pamięci

 zeruj debugger

 zeruj mikrokontroler (działanie programu)

 odśwież

 

Po uruchomieniu debugowania automatycznie otwierają się okna: Debug, Project Explorer, okno z debugowanym kodem i Disassemblyrysunek 17. W oknie z debugowanym kodem będziemy oglądać wykonywanie programu napisanego w C, a w oknie Dissasembly kod w asemblerze.

Teraz możemy zobaczyć jak się wykonuje nasz kod z listingu 1. Program nie zatrzymuje się na wywołaniu procedury z funkcji main(), ale najpierw na procedurze funkcji Reset_Handler()listing 3.

 

Rys. 17. Okna z debugowanym kodem

 

List. 3. Funkcja Reset_Handler

Jest to funkcja wywoływana po zerowaniu mikrokontrolera i dopiero ona wywołuje główna funkcję main(). Jednak zanim to nastąpi wywoływana jest funkcja System Init() umieszczona w pliku startup_S7G2.c i pokazana na listingu 4.

 

List. 4. Funkcja inicjalizacji mikrokontrolera

Zgodnie z przewidywaniami inicjalizacja jest dość rozbudowana i zawiera procedury ustawiające między innymi taktowanie, system przerwań, protekcję zapisu rejestrów, inicjowanie linii GPIO itp.

Każdą z funkcji inicjalizujących można w debugerze wykonywać krokowo i posiłkując się dokumentacją mikrokontrolera patrzeć jak postępuje konfigurowanie mikrokontrolera. Możemy jako przykład zobaczyć jak wygląda ustawianie taktowania mikrokontrolera wykonywane przez procedurę bsp_clock_initlisting 5.

 

List. 5. Konfigurowanie taktowania mikrokontrolera

O autorze