Laboratorium Procesorów Sygnałowych
Kierunek: Elektrotechnika
Semestr: VI
Prowadzący: dr inż. Robert Wielgat
Ćwiczenie 1 - Zapoznanie się z zestawem uruchomieniowym ADSP 21065L EZ-KIT Lite. Kompilowanie i uruchamianie programu w kodzie języka C.
Cel ćwiczenia:
Zapoznanie się z architekturą płyty ADSP 21065L EZ-KIT Lite
Zapoznanie się z rozmieszczeniem elementów na płycie ADSP 21065L EZ-KIT Lite
Zaznajomienie się ze środowiskiem programistycznym VisualDSP++
Nauka otwierania i kompilowania istniejących projektów
Zaznajomienie się z procesem debugowania oraz okienkami i komunikatami środowiska
Nauka uruchamiania programów
Budowa płyty ADSP 21065L EZ-KIT Lite
Płyta ADSP 21065L EZ-KIT Lite została zbudowana w oparciu o zmiennoprzecinkowy procesor sygnałowy ADSP-21065L. Płyta współpracuje z oprogramowaniem VisualDSP++. Najważniejsze cechy płyty to:
Procesor ADSP-21065L taktowany zegarem 60 MHz,
16-bitowy SoundPort® Kodek AD1819A
Interfejs RS-232
Pamięć EPROM
Pamięć SDRAM (1M x 32 bity)
Cztery przyciski do ustawiania stanów flag systemowych
Trzy przyciski do wywoływania przerwań
Sześć diod LED programowanych przez użytkownika
Regulacja napięcia zasilającego
Złącze analogowe EMAFE
Złącze rozszerzające (Expansion Connector)
W płycie EZ-KIT Lite zaimplementowano rozwiązania sprzętowe ułatwiające interaktywne demonstracje. Użytkownik ma do dyspozycji przyciski oraz programowalne diody LED. Ponadto AD1819A SoundPort® Kodek umożliwia dostęp do wejścia audio (wybieranego za pomocą zwory jako wejście line lub mikrofonowe) oraz wyjścia audio (wyjście line).
Na płycie EZ-KIT Lite znajduje się nie ulotna pamięć, w której zapisano program monitora. Program monitora pozwala użytkownikowi wgrywać, wykonywać oraz debugować programy. Zastępując pamięć EPROM na płycie pamięcią EPROM zawierającą kod użytkownika płyta EZ-KIT Lite staje się samodzielnym urządzeniem działającym bez pomocy komputera klasy IBM PC.
Dostęp do procesora ADSP-21065L jest możliwy z poziomu komputera PC, który jest połączony z płytą za pomocą portu szeregowego lub opcjonalnie za pomocą emulatora JTAG.
Rys. 1. Schemat blokowy płyty ADSP-21065L EZ-KIT Lite.
Rys. 2. Rozmieszczenie elementów na płycie ADSP-21065L EZ-KIT Lite.
Architektura płyty EZ-KIT Lite jest przedstawiona na rys.1. Natomiast rozmieszczenie elementów na rys.2. Studenci mają za zadanie zlokalizować poszczególne elementy na płycie EZ-KIT lite dołączonej do komputera oraz dowiedzieć się jaką rolę one pełnią
W sprawozdaniu należy zawrzeć wyczerpujące odpowiedzi na następujące pytania dotyczące płyty ADSP-21065L EZ-KIT Lite:
Jaka jest rola wejść/wyjść na płycie ?
Co można ustawiać przyciskami ?
Co sygnalizują diody LED ?
Co można ustawić za pomocą zworek ?
Jakie jest rozmieszczenie i rola układów scalonych zawierających co najmniej 8 wyprowadzeń, oraz lokalizacja rezonatora kwarcowego i stabilizatorów ?
Odpowiedź na każde pytanie należy uzupełnić rysunkiem przedstawiającym lokalizację elementów na płycie, których dotyczy pytanie.
Zachęca się Studentów do wnikliwego przestudiowania dokumentacji „ADSP-21065L EZ-KIT Lite Evaluation System Manual” do pobrania ze strony http://www.analog.com.
Uruchamianie środowiska VisualDSP++ oraz otwieranie projektu
Kliknij przycisk Start, znajdź i uruchom program VisualDSP++ Environment
Jeżeli program jest uruchamiany po raz pierwszy należy wykonać poniższe instrukcje w przeciwnym przypadku należy przejść od razu do punktu 2).
W momencie pierwszego uruchomienia programu pojawi się okno New Session, w którym należy ustawić parametry jak na poniższym rysunku:
Kliknij OK aby powrócić do głównego okna programu.
Jeżeli VisualDSP++ jest już uruchomiony i jest zaznaczona opcja Reload last project at startup na zakładce Project w opcji Preferences z opcji Settings z menu głównego, wówczas VisualDSP++ otwiera projekt, na którym ostatnio pracowałeś. Należy zamknąć ten projekt wybierając Close z opcji Project z menu głównego. Jeżeli pojawi się pytanie, czy zapisać zmiany w projekcie należy kliknąć przycisk Nie. Następnie z menu głównego należy wybrać opcję Project a następnie wybrać Open.
Pojawi się okno Open Project, za pomocą którego należy otworzyć plik dotprodc.dpj, do którego prowadzi następująca ścieżka dostępu:
Program Files\Analog Devices\VisualDSP++ 3.5\21k\Examples\tutorial\dot_product_c
Projekt zawiera dwa pliki źródłowe w kodzie języka C: dotprod.c oraz dotprod_main.c, w których są zdefiniowane 4 wektory oraz funkcje obliczające iloczyn skalarny poszczególnych wektorów.
Z opcji Settings z menu głównego wybierz Preferences. Pojawi się okno Preferences pokazane na poniższym rysunku.
Upewnij się, że w polu General Preferences w zakładce General są ustawione opcje:
Run to main after load
Load executable after build
Kliknij OK, aby zamknąć okno Preferences. Jesteś teraz przygotowany, aby skompilować otwarty projekt.
Kompilowanie projektu
Z menu Project wybierz Build Project. VisualDSP++ sprawdza najpierw zależności między plikami, a następnie kompiluje projekt korzystając z plików źródłowych. W miarę postępów kompilacji okno Output (u dołu ekranu) wyświetla komunikaty o przebiegu kompilacji. Niektóre z komunikatów mogą zawierać informacje o błędach. Klikając dwukrotnie na komunikat o błędzie otwiera się plik źródłowy, w którym wystąpił błąd. Błąd ten można następnie poprawić i ponownie skompilować projekt.
Kliknij dwukrotnie na komunikat o błędzie w oknie Output. VisualDSP++ otworzy plik źródłowy, w którym wystąpił błąd i ustawi kursor w miejscu wystąpienia błędu. W oknie edycyjnym widać, że mylnie została podana nazwa typu zmiennej zamiast int jest itn.
W oknie edytora zamień słowo itn na int. Po zamianie słowo int zostanie podświetlone na kolorowo, co oznacza, że zostało rozpoznane jako poprawne słowo kluczowe języka C.
Zapisz plik źródłowy wybierając Save z menu File.
Skompiluj ponownie projekt wybierając Build Project z menu Project. Projekt został obecnie skompilowany bezbłędnie, co potwierdza komunikat Build completed successfully w widoku Build w oknie Output.
Ustawianie sesji debugującej
Ponieważ w zakładce General w oknie dialogowym Preferences została zaznaczona opcja Load executable after build, zatem plik wykonawczy dotporod.dxe zostanie automatycznie załadowany do pamięci programu.
Jeżeli wybrany procesor sesji debugującej nie zgadza się z procesorem docelowym, wówczas zostanie wyświetlone zapytanie czy chcesz wybrać inną sesję przed załadowaniem pliku wykonawczego w miejsce docelowe. Jeżeli Visual DSP++ nie otworzy okna dialogowego Session List należy pominąć kroki 1-4 poniżej.
Aby ustawić sesje debugującą należy:
1. W oknie dialogowym Session List należy kliknąć New Session w celu otwarcia okna dialogowego New Session pokazanego na poniższym rysunku:
Jeżeli w przyszłości zajdzie potrzeba otwarcia okna dialogowego New Session dialog box, wówczas należy użyć komendy New Session z menu Sessions.
2. Określ parametry sesji wg poniższej tabeli:
Parametr |
Wartość |
Debug Target |
ADSP-2106x Family Simulator |
Platform |
ADSP-2106x Simulator |
Session Name |
ADSP-21065L ADSP-2106x Simulator |
Processor |
ADSP-21065L |
3. Kliknij OK w celu zamknięcia okna dialogowego New Session oraz powrotu do okna dialogowego Session List.
4. Mając podświetloną nazwę sesji kliknij przycisk Activate. VisualDSP++ zamknie okno dialogowe Session List, automatycznie załaduje plik wykonawczy dotprodc.dxe do pamięci programu i przejdzie do wykonywania funkcji main w kodzie programu. Widok okna programu VisualDSP++ powinien być podobny do tego na poniższym rysunku:
5. Spójrz na informacje w otwartych oknach.
W oknie Console jest widoczna informacja na temat statusu sesji debugującej. W tym przypadku VisualDSP++ informuje, że ładowanie pliku dotprodc.dxe jest zakończone.
Okno Disassembly wyświetla kod asemblera pliku wykonawczego.
W oknie edytora kodu programu (dotprod_main.c) przy słowie main będącym punktem startowym programu pojawiło się czerwone kółko (
) oraz (
) żółta strzałka. Czerwone kółko przy danej instrukcji oznacza, że w tym miejscu jest ustawiona tzw. pułapka (ang. breakpoint), a żółta strzałka wskazuje, że procesor jest obecnie zatrzymany na instrukcji oznaczonej żółtą strzałką. Gdy program VisualDSP++ załaduje program w języku C, wówczas ustawia automatycznie dwie pułapki, jedną na początku, a drugą na końcu wykonywanego kodu. Położenie pułapek na ekranie twojego komputera może nieznacznie się różnić w porównaniu z przykładami prezentowanymi w niniejszej instrukcji.
6. Z menu Settings wybierz Breakpoints w celu obejrzenia pułapek ustawionych w twoim programie. VisualDSP++ wyświetli okno dialogowe Breakpoints, pokazane poniżej.
Pułapki zostały ustawione przy następujących liniach programu w języku C:
• __lib_prog_term
• “main + 0x5”
Okno dialogowe Breakpoints umożliwia oglądanie, dodawanie oraz kasowanie pułapek. W oknie edytora oraz oknie Disassembly podwójne kliknięcie na linię kodu przełącza (dodaje lub kasuje) pułapki. W oknie edytora potrzebne jest jednak umieszczenie kursora na szarym pasku przed podwójnym kliknięciem.
W celu ustawiania lub kasowania pułapek można użyć następujących przycisków na pasku narzędziowym:
- przycisk przełącza pułapkę dla bieżącej linii programu
- przycisk kasuje wszystkie pułapki
7. Kliknij OK lub Cancel aby wyjść z okna dialogowego Breakpoints.
Kolejne punkty ćwiczenia studenci wykonują wg rozdziału „Getting Started” z pomocy do programu VisualDSP++.
Uruchamianie i modyfikowanie programów
Otwórz projekt C:\Program Files\Analog Devices\VisualDSP 3.5 32-Bit\21k\EZ-KITs\21065L\Demos\Blink\Blink.dpj i skompiluj go. Uruchom program.
Przeanalizuj program. Zapisz projekt pod własną nazwą we własnym katalogu. Zmodyfikuj program tak aby zmienić okres migania diod.. W sprawozdaniu należy zawrzeć listing programu, jego opis oraz algorytm. Ponadto w sprawozdaniu należy zawrzeć szczegółowy opis każdego typu instrukcji użytej w programie.
Otwórz projekt C:\Program Files\Analog Devices\VisualDSP 3.5 32-Bit\21k\EZ-KITs\21065L\Demos\Gunn\Gunn.dpj i skompiluj go. Uruchom program.
Przeanalizuj program. Zapisz projekt pod własną nazwą we własnym katalogu. Zmodyfikuj program tak aby zmniejszyć głośność odtwarzanej muzyki. W sprawozdaniu należy zawrzeć listing programu oraz jego opis. Ponadto w sprawozdaniu należy zawrzeć szczegółowy opis każdego nowego typu instrukcji w porównaniu z poprzednim programem. W sprawozdaniu należy również zawrzeć opis wyjaśniający zawartość pliku Notes.ldf.
Otwórz projekt C:\Program Files\Analog Devices\VisualDSP 3.5 32-Bit\21k\EZ-KITs\21065L\Demos\Pluck\Pluck.dpj i skompiluj go. Uruchom program.
Przeanalizuj program. Zapisz projekt pod własną nazwą we własnym katalogu. Zmodyfikuj program tak aby zwiększyć tempo odtwarzanej muzyki. W sprawozdaniu należy zawrzeć listing programu oraz jego opis. Ponadto w sprawozdaniu należy zawrzeć szczegółowy opis każdego nowego typu instrukcji w porównaniu z poprzednimi programami. W sprawozdaniu należy również zawrzeć ogólny opis roli plików źródłowych zawartych w projekcie.
Jeżeli zostanie pewna rezerwa czasowa należy skompilować, uruchomić i przeanalizować pozostałe projekty znajdujące się w katalogu: C:\Program Files\Analog Devices\VisualDSP 3.5 32-Bit\21k\EZ-KITs\21065L\Demos