Sunteți pe pagina 1din 19

Academia Tehnic Militar

Laborator nr. 1

Prezentarea mediului de programare DSP++

n cadrul acestui laborator, vom ncerca s ne familiarizm cu mediul de programare, mai exact cu
interfaa Visual DSP++. VDSP++ este un mediu integrat de dezvoltare (IDDE Integrated
Development and Debugging Environment), elaborat de Analog Device (ADI), care permite lucrul n
regim de simulare sau lucrul cu platforme hardware de dezvoltare pentru aplicaii cu procesoare
numerice de semnal de tip Blackfin, Shark sau TigerShark. Versiunea Blackfin VDSP++ poate fi
descrcat gratuit de pe siteul ADI i utilizat pe o perioad de 90 de zile.
Dup descrcare i instalare, vom deschide VDSP++, START/VisualDSP++ Environment:

Vom explica instrumentele de baz ale mediului de programare, utiliznd un exemplu simplu de
cod, ce urmeaz a fi rulat.
Pentru nceput, vomvedea cum se deschide un nou proiect:
click n bara de meniu -> File -> New > Project.

n noua fereastr aprut, vom selecta tipul de proiect pe care dorim s l facem:
Select type: -project types: Standard Application
- name: spreexempluproiectul_meu
- directory: directorulundedorims salvm acest proiect

Apsam Next.Acum trebuie sa alegem tipul de procesor pe care dorim sa l utilizm. Avem trei
variante disponibile de familii de procesoare: Blackfin, SHARC iTigerSHARC. Vom selecta familia
de procesoareBlackfin, modelulADSP-BF533.

Apsnd Finish, vom crea un nou fiier, ce conine o funcie main.

n aceast ferestr urmeaz s scriem codul.


Dac dorim ns s deschidem un proiect deja creat: File > Open > Project, ca n imaginea
urmtoare:

n continuare vom crea un nou proiect, cruia i vom da o denumire, spre exemplu,
proiectul_meu. Fereastra nou deschis va arta ca n figura de mai jos:

S analizm acum componena acestei ferestre. Se observ c fereastra deschis este mprit
dup cum urmeaz:
Bara de instrumente, n partea de sus (toolbar);
Fereastra de editare, n care urmeaz s scriem codul ceva fi compilat n partea central
Fereastra proiect, n care vedem fiierele din proiectul pe care l-am deschis n partea
stng (Project);
O fereastr n care este scris codul n assembler corespunztor codului nostru, dup ce acesta
din urm a fost rulat - n partea dreapt (Disassembly);
O fereastrOutput, care cuprinde dou pagini:Console i Build n partea de jos. Consola
afieaz mesajele ce apar dup rularea codului. n pagina Build se afieaz eventualele erori care
apar odat cu compilarea programului.
Pentru fiecare proiect, trebuie s alegem o sesiune de lucru.
Exist dou tipuri de astfel de sesiuni, care pot fi selectate din meniul Session :
-

sesiune de simulare utiliznd un anumit procesor (de exemplu BF 533);


5

sesiune de lucru cu EZ Kit Lite via Debug Agent utiliznd o anumit platform (de
exemplu EZ-Kit Lite BF 533).

n exemplul ce umeaz vom ultiliza o sesiune de simulare.Aadar, vom deschide o nou sesiune
de lucru:

Se va deschide fereastra urmtoare, n care vom alege tipul procesorului: Blackfin, ADSP-BF533.

n continuare avem grij s specificm faptul c lucrm n modul simulare:

Urmeaz s selectm tipul platformei pe care dorim s lucrm:

Acum vom scrie codul dorit, n fereastra de editare.S analizm ce face codul nostru de fapt.Se
observ structura clasic a unui cod scris n limbajul C:
-

includere de biblioteci (obligatoriu)

declarare i iniializare variabile globale (opional)

Pentru a urmri mai uor ceea ce face programul nostru, am iniializat vectorii a i b cu mai puine
elemente;
- declarare funcii (se scrie obligatoriu antetul nainte ca funcia s fie apelat)

funcia main (obligatorie)

Ce face funcia main?


Dup cum bine se observ, apeleaz funcia nmulirei salveaz rezultatul returnat de aceast
n variabila rezultat.
S analizm acum corpul funciei nmulire.

Dup cum se observ, ea adun n variabila rez produsul dintre elementele vectorilor a i b i
returneaz rezultatul final, dup parcurgerea celor doi vectori, rezultat afiat apoi n funcia main, care o
apeleaz.

Dup editarea codului, acesta va trebui compilat.

Se afieaz urmtorul mesaj n fereastra console:

S analizm aceste erori: prima specific faptul c funcia apelat n main nu este definit. Cea
de-a doua este o eroare de sintax, ntruct lipsete un ;. n final, se precizeaz faptul c nu s-a
ndeplinit cu succes compilarea.
Remediem aceste erori, dup care apsm din nou Build Project.
Dup compilare, n fereastra Consoleva trebui s apar un mesaj de confirmare, ilustrat n
figura ce urmeaz:

VisualDSP++ seteaz dou Breakpoint-uri, la nceputul i la sfritulul codului. Acestea sunt


marcate ca n figura de mai jos, indicnd linia de cod (n stnga) i adresa (n dreapta).

Breakpoint-urile pot fi dezactivate apsnd click dreapta i alegng opiunea Disable


Breakpoint.Ele pot fi inseratei de ctre programator, apsnd Insert Breakpoint.

10

Codul este acum gata pentru a fi rulat.

Dup

rulare,

rezultatul

va

fi

afiat

fereastra

inferioar,

Console.

Codul poate fi rulat i pas cu pas, ceea ce ajut la vizualizare evoluiei variabilelor. Pentru
aceasta, vom alege s vizualizm o nou fereastr.

11

n dreapta ferestrei de editare va aprea fereastra urmtoare:

Vom da din nou Build Project,dup care vom intra nDebugunde, nlocsdm click
peRun, ca n situaia precedent, vom alegeStep Into.

S urmrim acum evoluia variabilelor.

12

n acelai mod, pentru a evalua o expresie, vom insera urmtoarea fereastr:

Nu n ultimul rnd, vom deschide fereastra call stack.

13

n continuare vom deschide un proiect deja creat, pentru a exemplifica inserarea unei ferestre de
tip plot, pentru analiza graficul unui semnal generat cu ajutorul codului.

Dup editarea codului i urmrirea pailor precizai n exemplul anterior (build project, respectiv
run), vom deschide o fereastr de tip plot, ca n imagine:

14

Vom alege semnalul pe care dorim s l reprezentm grafic, n cazul de faa out.

Important de modificat tipul de date ca fiind short i setarea numrului de eantioane, Count:
512. Dup aceasta vom apsa Add.

15

Se va genera urmtorul grafic:

Ce putem analiza la acest semnal?


1. Putem selecta o poriune pe care vom da zoom, pentru a observa mai clar forma
semnalului.

Pentru a reveni la dimensiunea normal, vom apsa click-dreapta i Reset Zoom.

16

2. O alt funcie pe care o putem folosi este transformata Fourier. Pentru aceasta, vom intra n
modify settings, data processing, opiunea fft magnitude.

Spectrul semnalului generat va aprea in fereastra plot, can imagine.

17

3.

Avem posibilitatea de a utiliza un cursor, pentru a determina valorile de pe grafic.

n colul stang, n partea de jos a imaginii de mai sus putem citi frecvena la care se gaseste linia
spectral.
4.

Putem alege frecvena de eantionare (8000 Hz n cazul de fa).

18

n urma reprezentrii, pe axa Ox vom citi timpul, n secunde.

19

S-ar putea să vă placă și