LinkedIn YouTube Facebook
Szukaj

Newsletter

Proszę czekać.

Dziękujemy za zgłoszenie!

[KURS] Aplikacje DSP na przykładzie mikrokontrolerów C2000 firmy Texas Instruments inicjalizacja systemowa procesora serii Piccolo F2802x, część 3

Krok 4: Uruchamianie sesji debugowej dla projektu Example_F2802xGpioSetup

Krok 4 umożliwia uruchomienie sesji debugowej dla projektu. Dotychczas praca środowiska CCSv5 nie wymagała fizycznej obecności sprzętu docelowego. Wykonanie kroku 4 wymaga wcześniejszego dołączenia zestawu ewaluacyjnego C2000 Piccolo LaunchPad do komputera z zainstalowanym środowiskiem CCSv5 [12].

8. W oknie TI Resource Explorer kliknij na odnośnik kroku 4.

Kliknięcie na odnośnik kroku 4 powoduje automatyczne rozpoczęcie sesji debugowej – podobnie jak po przyciśnięciu przycisku Debug .

Postęp działania środowiska CCSv5 można obserwować na pasku stanu w prawym dolnym rogu okna. Może to trwać dosyć długo i należy koniecznie poczekać przed rozpoczęciem dalszej pracy na zakończenie ładowania kodu i pokazania się okna perspektywy CCS Debug (rysunek 14).

 

  Rys. 14. Perspektywa CCS Debug po wystartowaniu sesji debugowej w kroku 4

Rys. 14. Perspektywa CCS Debug po wystartowaniu sesji debugowej w kroku 4

 

Wgląd w projekt Example_F2802xGpioSetup

9. Zauważ, że praca programu została zatrzymana na pierwszej linii kodu funkcji main() (rysunek 14).

10. Otwórz okno Disassembly z menu View ? Disassembly. W tym oknie można dokładnie zobaczyć jak naprawdę pracuje układ procesorowy Piccolo F28027 (rysunek 15).

Rys. 15. Perspektywa CCS Debug po wyświetleniu okna Disassembly

Rys. 15. Perspektywa CCS Debug po wyświetleniu okna Disassembly

 

Najpierw trzeba poprawić program projektu Example_F2802xGpioSetup. Aplikacja czasu rzeczywistego nie może kończyć swojego wykonania. W praktyce oznacza to iż funkcja main() musi na końcu zawierać pętlę nieskończoną. Może ona być dodana po ostatnim „użytkowym” kodzie jak jest to zrobione np. w innym projekcie przykładowym Example_F2802xLEDBlink pakietu controlSUITE.

11. Przed końcem kodu funkcji main() dodaj pętlę

    for(;;){
        asm(" NOP");
    }

12. Wykonaj samo budowanie projektu (bez ponownego startowania sesji debugowej). Przełącz się na perspektywę CCS Edit. Kliknij na przycisk Build . Nie używaj przycisku Debug . 13. Na pytanie czy załadować plik wynikowy kodu przyciśnij przycisk Yes. Poczekaj na załadowanie programu. Przełącz się na perspektywę CCS Debug.

 

Pliki nagłówkowe projektu

Na początku pliku Example_2802xGpioSetup.c włączany jest plik nagłówkowy DSP28x_Project.h.

#include "DSP28x_Project.h"     // Device Headerfile and Examples Include Files

Plik DSP28x_Project.h znajduje się w ścieżce C:\TI\controlSUITE\device_support\f2802x\v210.

W pliku DSP28x_Project.h znajduje się wywołanie następnych dwóch plików nagłówkowych

#include "F2802x_Device.h"     			    // DSP2802x Headerfile Include File
#include "f2802x_common/include/F2802x_Examples.h" // DSP2802x Examples Include File

Główny plik definicyjny projektu F2802x_Device.h znajduje się w ścieżce

C:\TI\controlSUITE\device_support\f2802x\v210

W pliku jest wykonywany wybór typu układu procesorowego (DSP28027PT) oraz definiowane są symbole i typy stosowane w całym projekcie.

Drugi plik nagłówkowy DSP2802x_Examples.h znajduje się w ścieżce

C:\TI\controlSUITE\device_support\f2802x\v210\f2802x_common\include

Plik zawiera na początku definicje symboli używanych do inicjacji rejestrów PLLCR i DIVSEL modułu PLL układu procesorowego serii Piccolo F2802x. Te ustawienia określają częstotliwość zegara systemowego układu procesorowego.

Plik określa też parametr CPU_RATE = 16.667L będący wartością okresu zegara systemowego wyrażoną w ns dla częstotliwości SYSCLKOUT = 60MHz.

W pliku definiowany jest wskaźnik Device_cal na funkcję kalibracji oscylatorów wewnętrznych i modułu ADC. Na koniec definiowana jest funkcja opóźnienia DELAY_US(A) wyskalowana w mikrosekundach.

Dalej w pliku Example_2802xGpioSetup.c włączane są pliki nagłówkowe obsługi modułów peryferyjnych z zastosowaniem modelu drajwerów programowych (bilioteka driverlib ) użyte w projekcie:

#include "f2802x_common/include/clk.h"
#include "f2802x_common/include/flash.h"
#include "f2802x_common/include/gpio.h"
#include "f2802x_common/include/pie.h"
#include "f2802x_common/include/pll.h"
#include "f2802x_common/include/wdog.h"

Pliki znajdują się w ścieżce C:\TI\controlSUITE\device_support\f2802x\v210\f2802x_common\include. Każdemu plikowi nagłówkowemu odpowiada plik kodu *.c o tej samej nazwie.

 

Moduł CPU Watchdog

Układy procesorowe serii Piccolo F2802x posiadają moduł CPU Watchdog [5, 14]. Moduł CPU Watchdog posiada 8-bitowy licznik zliczający do góry z użyciem sygnału zegarowego OSCCLK. Gdy licznik osiągnie wartość maksymalną (wystąpi przepełnienie) moduł generuje wyjściowy impuls – poziom niski sygnałów /WDSRT oraz /XRS o długości 512 cykli zegara OSCCLK. Jeśli jest włączone zgłaszanie przerwania od modułu CPU Watchdog to zamiast tego generowany jest tylko sygnał /WDINT. Moduł CPU Watchdog może także wyprowadzać procesor z trybu obniżonego poboru mocy.

Dodatkowo procesory serii Piccolo F2802x posiadają moduł NMI Watchdog. Należy zwrócić uwagę, że moduł NMI Watchdog jest innym modułem niż CPU Watchdog.

Moduł CPU Watchdog jest bardzo istotny w aplikacjach czasu rzeczywistego. Ma on dosyć prostą budowę. Toteż metody jego obsługi udostępniane przez bibliotekę driverlib są dosyć łatwe do opisania.