Procesor embedded(integrat): Arhitectura microsemnalelor; Mediul de lucru in VisualDSP++.

Sistemele embedded (integrate) sunt parte a unor sisteme complexe si, de obicei, sunt implementate pe echipamente dedicate cu soft asociat pentru a forma un dispozitiv de calcul care sa efectueze eficient o functie specifica. Procesoarele embedded cu soft asociat sunt inglobate in numeroase aplicatii. Spre deosebire de calculatoarele de uz general, proiectate pentru cateva sarcini generale, un sistem integrat reprezinta un sistem specializat de calculator integrat de obicei ca parte a unui sistem mai mare. Printre dispozitivele si aplicatiile bazate pe procese intregrate de prelucrare a semnalului DSP (procesare digitala de semnal) devin o componenta cheie pentru manipularea semnalelor, cum ar fi voce, audio, imagini si video in timp real. Prin urmare, multe din cele mai recente unitati harware de prelucrare sunt echipate cu procesoare integrate pentru prelucrarea semnalelor in timp real. Procesorul incorporat (embedded) trebuie sa interactioneze cu unele componente hardware externe cum ar fi memoria, display-ul, precum si dispozitivele de intrare/iesire (I/O), cum ar fi codificatorul/decodificatorul pentru a manipula semnalele din viata reala, inclusiv voce, muzica, imagine si video din viata analogica. De asemenea, are conexiuni la o sursa de alimentare (sau baterie) si cipuri de lagatura pentru transferul de date (I/O) si comunica sau schimba informatii cu alte procesoare integrate. Un sistem incorporat tipic cu cateva componente hardware este ilustrat in Figura 1.1. Unul sau mai multe procesoare integrate sunt folosite pentru a indeplini functii de prelucrare si control al semnalului. Interfetele hardware cu procesorul include: (1) memoria interna cum ar fi memorie doar pentru citire(ROM) pentru incarcarea codului si memorie cu acces aleator(RAM) si memorie cache pentru stocarea codului si a datelor;(2) un controler de acces direct la memorie (DMA) care este frecvent folosit pentru a transfera date in si din memoria interna fara interventia procesorului principal; (3) periferice sistem care contin cronometru, ceas, circuite de gestionare a puterii pentru a controla conditiile de functionare ale procesorului si (4) porturi de intrare/iesire (I/O) care permit procesoarelor incorporate sa monitorizeze sau sa controleze evenimentele externe, precum si sa proceseze fluxuri media primite de la dispozitivele externe. Aceste entitati pentru suportul hardware si procesor reprezinta blocuri tipice care formeaza un sistem incorporat. In plus, procesorul embedded (incorporat) poate face schimb de date cu un alt sistem sau procesor prin intermediul canalelor digitale de intrare/iesire. Vom folosi experimente hands-on pentru a ilustra cum se programeaza diferite blocuri ale unui sistem embadded (incorporat) si modul de integrare cu procesorul incorporat.

In cele mai multe sisteme embedded (integrate), procesorul incorporat si interfetele sale trebuie sa opereze in conformitate cu constrangerile de timp real, astfel, este necesar ca semnalele de intrare sa fie procesate intr-un anume interval de timp. Imposibilitatea de a indeplini aceste constrangeri de timp real duce la rezultate inacceptabile ca raspunsuri zgomotoase in aplicatii audio si imagine, sau chiar la consecinte catastrofale in unele aplicatii legate de oameni, cum ar fi automobilele, avioanele si sisteme de monitorizare a sanatatii. Pentru a ilustra cum diferite blocuri sunt conectate la procesor vom folosi exemplul unui audio player portabil ilustrat in Figura 1.2.

O abordare frecventa pentru realizarea taskurilor de prelucrare a semnalelor este de a utiliza functii fixe si procesoare hardwired. In acest exemplu. Datele comprimate sunt transmise procesorului Blackfin. in mod repetat o sarcina specifica. Folosind ca exemplu acest audio media player putem identifica unele caracteristici comune ale sistemelor embedded tipice. Acestea sunt implementate ca circuite integrate specifice unei aplicatii(ASICs) cu compatibilitati DSP. imagine si aplicatii de codare video fac ca abordarea hardwired sa nu mai reprezinte cea mai buna optiune. In plus. Reactii si raspunsuri in timp real: multe sisteme embedded trebuie sa reactioneze continuu la modificarile sistemului de intrare. audio. Functii dedicate:Un sistem embedded executa. raspandirea si schimbarile rapide a noilor standarde pentru telecomunicatii. procesorul indeplineste taskul de decodificare a fluxului de biti in format Ogg Vorbis si trimite esantioanele decodate audio DAC-ului pentru redare. 2. Un program de decodificare pentru decodarea sirului de biti audio este incarcat din memoria flash in memoria procesorului.In acest sistem fluxul comprimat de biti audio in format Ogg Vorbis este stocat in memoria flash externa procesorului. de obicei. Alegerea unui procesor embedded adecvat joaca un rol important in proiectarea unui sistem embedded. Ele sunt prezentate pe scurt in cele ce urmeaza: 1. 3. sa fie imbunatatite prin unele taskuri de postprocesare cum ar fi egalizarea efecte audio 3D . care decodifica fluxul de biti comprimati in date modulate PCM. Convertorul audio digital-analogic extern (DAC) converteste datele PCM in semnal analogic pentru redarea cu ajutorul castilor sau difuzoarelor. Datele PCM pot la randul lor. Cu toate acestea proiectarea si producerea procesoarelor harwired sunt foarte scumpe dupa cum costurile de dezvoltare devin semnificative pentru tiparul noului proces. . Constrangeri solide: Exista multe constrangeri in proiectarea unui sistem embedded cum ar fi: costul.dimensiunea si consumul de energie. viteza de procesare.

Deoarece toate procesoarele Blackfin au un cod compatibil. cum ar fi setul de instructiuni pentru controlul si aplicatia de procesare a semnalului. astfel. privind consumul de energie. fac dintr-un procesor programabil o optiune foarte atractiva. bazata pe blocuri periferice. se simplifica foarte mult proiectarea si implementarea atat a hard-ului cat si a soft-ului.O alternativa este de a utiliza procesoare programabile. modelul MSA are capacitatea de a executa algoritmi DSP foarte complexi si task-uri de baza pentru control intr-un singur procesor. BF533. In plus. Acest mod de abordare ofera flexibilitate in a scrie diferiti algoritmi pentru produse diferite. Vom folosi procesoarele BF533 si BF537 pentru a explica arhitectura. blocuri de sisteme de control. In plus. Arhitectura DSP-urilor a evoluat foarte mult in ultimele doua decenii fiind incluse trasaturi ca frecventa de ceas mai mare. Prin urmare. Procesorul MSA combina o arhitectura de calcul extrem de eficienta cu caracteristici uzuale prezente numai la microcontrolere. iar BF561 este un procesor dual-core Blackfin care este folosit pentru aplicatii mai complexe. Acest tip de procesor permite utilizatorilor sa scrie soft pentru aplicatiile specifice. Procesorul MSA a fost realizat in comun de catre Intel si ADI (Analog Device Inc) pentru a satisface cerintele de calcul si constrangerile aplicatiilor embedded de tip audio. protectia memoriei. precum şi. Următoarea generaţie de procesoare Blackfin formata din BF531. folosind acelasi processor si a imbunatati codul pentru a satisface standardele impuse produselor existente. ideala pentru o varietate de comunicatii. explicatia nucleului Blekfin poate sa se . folosirea coprocesoarelor pentru comunicati si control si configuratia avansata a memoriei. Aceste caracteristici includ optimizari pentru limbaje de programare high-level. Aceasta combinatie evita necesitatea separarii procesorului DSP de microcontrolere si. Prin urmare. Un DSP programabil este folosit frecvent pentru multe aplicatii embedded. si de mare viteza I/O. care permite dimensiuni diferite de op-coduri care urmează să fie combinate într-o singură instrucţiune. Una din cele mai noi generatii de procesoare programabile de semnal embedded este arhitectura micro semnal (MSA). MSA vine cu un set de instrucţiuni multifuncţional. Intel si ADI au dezvoltat ulterior procesoare bazate pe arhitectura MSA pentru diferite aplicatii. şi procesatori BF561. Prin urmare. care opereaza la 300 MHz si lucreaza cu memorie cache L1 si L2. Asadar. Complexitatea aplicatiilor actuale de procesare a semnalelor si necesitatea de imbunatatire continua. Prima generatie de procesoare Blackfin este BF535. adresare pe octeti. programatorul are flexibilitatea de a reduce dimensiunea codului. sunt unele instructiuni speciale de suport video si cu aplicatii wireless. programele scrise pentru un procesor poate fi usor de suportat pentru alte procesoare. precum si probleme de punere in aplicare. video si comunicatii. modelul MSA are o carcteristica privind consumul de energie foarte eficienta si dinamica. interfetele periferice. Procesoarele BF531 şi BF532 sunt cel mai puţin utilizate şi funcţionează la 400 MHz. Nucleul MSA utilizeaza o simpla categorie de instructiuni (computer-setinstructiuni-simplificare). De asemenea. mai multe unitati aritmetice si logice.cat si functionalitatile microcontrolerelor intr-un singur procesor. BF532. Modelul MSA inglobeaza atat DSP-urile. maximizând utilizarea resurselor disponibile. un produs poate fi scos pe piata intr-un timp mai scurt si se reduc astfel costurile de dezvoltare comparativ cu abordarea hardwired.

3. construirii si depanarii proceselor. . cât şi extern. interfetele utilizator. Elementele software pentru procesorul Blackfin este Visual DSP++ furnizat de ADI. Raspundere in timp la cerinte. un sistem in timp real trebuie să menţină un rezultat în timp util. Blackfin BF533/BFF537 EZ-Kits sunt folosite ca platforma a soft-ului si hard-ului. O intelegere solida a principiilor si algoritmilor este cheia pentru construirea unui sistem in timp real. Cu aceste cunostinte. folosind cei mai buni parametrii si setari. Precizia aritmetica. Visual DSP++ este un mediu de dezvoltare si de depanare care ofera control grafic complet al editarii. Intelegerea algoritmilor si variabilelor DSP. Disponibilitatea resurselor. 3. 4. Introducere in mediul de dezvoltare integrat visualDSP++ Vom examina instrumente de dezvoltare software pentru sistemele embedded. ca in Figura 1. Programatorii trebuie sa ia in considerare problemele de hardware si de software. In cele mai multe sisteme embedded (integrate). Integrarea softului si hard-ului in sistem. Configurarea VisualDSP++ Versiunea Blackfin a VisualDSP++ IDEE pot fi descarcate si testate pentru o perioada de 90 de zile de pe site-ul ADI. atat intern. 5. un punct fixaritmetic este frecvent folosit. Unele dintre facilitati includ: 1. memorie. Pictograma programului VisualDSP++ va fi pe Desktop sau in bara de START a computerului. programatorul isi poate optimiza algoritmul de pe procesor. sunt necesare procesoare de semnal in timp real pentru aplicatii de control si aplicarea acestora.concentreze numai pe BF533. 2. senzorii si elementele de actionare. Se va utiliza simulatorul VisualDSP++ pentru a verifica corectitudinea algoritmului si EZ-Kit (departament de dezvoltare care contine procesor. Sunt multe facilitati la proiectarea unui sistem în timp real. Exista doua tipuri de sisteme in timp real: sistemele hard si sistemele soft. Procesarea semnalelor embedded in timp real În general. si sectiuni suplimentare sunt introduse in cadrul BF537 pentru a sprijini perifericele. perifericelor. Selectarea nucleului procesorului. Vom prezenta unele caracteristici importante ale VisualDSP++. memoria dezvoltarii si a uneltelor de debugging este o sarcina complexa. precum si alte periferice pentru MSA) pentru Blackfin BF533 si pentru BF537.

daca imaginea se afla pe Desktop.Figura 1. arata astfel .4. veti intra in programul VisualDSP++ ca in imaginea 1. Dati dublu click pe aceasta pentru a activa VisualDSP++.4 Fereastra VisualDSP++ .3 Pasii de intrare in VisualDSP++ Pitograma pentru programul VisualDSP++. Figura 1. Astfel.

Processor. ca in imaginea de mai jos. Fereastra New Session. Selectati Debug target. .selectati din bara de meniu: Session ->Select Session ->ADSP-BF537-BF5xx Single Processor Simulator(1). Platform.Deschideti un proiect creat anterior cu obtiunile File -> Open -> Project.5 Pasii de deschidere a unui proiect in VisualDSP++ Acum.6 si se vor face selectiile pentru placa dorita. si dati click pe OK. ca in imaginea 1. Figura 1.6 Pasii de selectare a sesiunii in VisualDSP++ Va va aparea fereastra New Session ca in Figura 1. Figura 1.6.5. Figura1.

codul de dezvoltare pentru orice procesor Blackfin este compatibil cu codul altor procesoare Blackfin.Cand ADSP_BF5xx Blackfin Family Simulators este selectat ciclul de simulator este folosit. Fereastra Disassembly afiseaza codul de asamblare a programului dupa ce proiectul a fost construit (este fereastra selectata cu negru) Output Window este format din doua pagin Console si Build (selectata cu verde in figura de mai jos). Processorul permite utilizatorului optiunea de a selecta tipul de procesor. Bara de instrumente contine toate instrumentele. optiunile si modurile disponibile in VisualDSP++. Alternativ. Simulatorul compilat este utilizat atunci cand are nevoie de a procesa un fisier foarte mare de date. Exista trei subferestre si o bara de instrumente in meniul VisualDSP++. Fereastra Project afiseaza fisierele disponibile in proiect sau grupul de proiecte (selectata cu albastru in figura de mai jos). afiseaza orice mesaj care este programat in cod.6. este selectat procesorul ADSP-BF533. . In Figura 1. si pagina Build arata toate erorile survenite in timpul procesului de constituire. Cu toate acestea. Console. Acest simulator oferă o performanţă mai mare si din acest motiv este utilizat. utilizatorii pot selecta ADSP-BF537. Dati click pe Project -> Project Options si asigurati-va ca procesorul este selectat corespunzator.

directorul fiind in c:\adsp\chap1\exp1_1. . vom deschide mediul VisualDSP++ asa cum am explicat mai sus. Apoi deschideti proiectul cu ajutorul optiunile File -> Project -> Open. Figura 1.(cu dublu click pe pictograma VisualDSP++ sau din bara de start a computerului Start> All Programs->Analog Devices-> VisualDSP++Environment). Din bara de instrumente selectati Settings. Dati dublu click pe dotprod_main.Folosirea unui program simplu pentru a ilustra procesele de baza Vom ilustra instrumentele de baza ce se regasesc in VisualDSP++ IDDE.1 In acest experiment.c Acesta este un program simplu care arata inmultirea a doi vectori. putem vedea o lista de fisiere sursa.c pentru a vedea sursele codului in fereastra editor. In exemplul de mai jos este deschis proiectul cu numele exp1_1.6 Afisarea programului dotprod_main. si vom folosi un proiect format din doua fisiere sursa scris in C pentru procesorul Blackfin. EXPERIMENTUL 1. a si b.dpj. apoi optiunea Preferences cum a fost selectata mai jos. Odata ce proiectul este incarcat in VisualDSP++. ca in imaginea de mai jos.

Faceti click pe butonul OK.7. pentru a inchide fereastra Preferences. Utilizatorii vor folosii fisierul . bifati optiunile Run to main after load si Load executable after build.7. A doua optiune permite codului sa fie incarcat in memoria procesorului. Prima optiune pornete de la void main() a programului dupa ce programul este incarcat in simulator. Restul de optiuni pot fi selectate ca in Figura 1. Dupa acestea dati click pe Project -> Build Project din bara de instrumente sau apasati F7. Figura 1. iar imaginea pentru acest process este .7 Fereastra Preferences dialog box Din fereastra General.si o sa va apara casuta Preferences ca in Figura 1. cand codul este in curs de construire.

.dxe este copiat automat in director (care este activat din meniul Preferences). compilatorul va afisa un mesaj de eroare ca in Figura 1.c. Va va aparea un mesaj care sa ateste ca fisierul executabil a fost complet incarcat.dxe. Odata ce codul programului a fost compilat. Localizarea breakpoint poate fi vizualizata prin accesarea Setting -> Breakpoints ca in Figura1.20. Dati click pe Console si apoi in pagina Output Window. si apoi compilati programul cu ajutorul instructiunilor Project -> Build Project. inseamna ca nu s-au gasit erori. ca in imaginea de mai jos sau apasand tasta F7.executabil exp1_1. In afara de Build Project. Daca apare mesajul Build completed successfully din comanda Build si in cadrul ferestrei Output Window. Daca sunt erori.8 Mesaj de eroare daca programul are greseli in cod Dupa ce a-ti tratat erorile salvati programul cu ajutorul optiunilor: File-> Save -> File dotprod_main. care a fost creat in directorul c:\adsp\chap1\exp1_1\ . Figura1. avand simulatorul BF533 (sau 537). VisualDSP++ este setat automat in doua seturi de valori. mai este si optiunea Rebuild All pentru aceasta avem imaginea . fisierul executabil exp1_1. una la inceputul si alta la sfarsitul codului. acesta este Breakpoint Hit at <ffa006f8>.8.

Care este raspunsul pentru produsul a si b ? Modifica sursa de fisiere pentru a efectua urmatoarele sarcini : 1. 3. ca in imaginea de mai jos. Dati click pe Register-> Core->Cycles. Dati click pe butonul sau Debug -> Run (F5). 2. Adauga elementul 20 la matricea c.9 Breakpoint displayed in both editor and disassembly windows Figura 1.20.Figura 1. Fereastra Breakpoints Proiectul este acum gata pentru a rula. Pentru a obtine numarul de cicluri rulati codul de la inceput la sfarsit. realizeaza calculul intre a si c. si afiseaza rezultatul. Simulatorul calculeaza produsul scalar si afiseaza rezultatul in pagina Console din Output Window. Realizeaza produsul din primele 10 elemente ale matricei. .

Reincarcati programul si dat click pe File -> Reload Program. .

In plus.22 este prezentata placa BF537. decoder video. care arată diferenţele dintre BF533 si placa BF537. prin intermediul mufei RCA. Similar cu placile BF533 EZ-KIT si cu placa BF537 EZ-KIT mai sunt patru butoane generale (SW10. placa BF537 nu are video de intrari sau de iesiri.21 arata o imagine a placii BF533 EZ-KIT. si asa mai departe. ea include IEEE 802. care instaleaza fisiere . In Figura 1. cum ar fi coder/decoder audio (CODEC). Porniti alimentarea cu energie electrica si verificati daca LED-ul verde este aprins si ledurile 4-9 continua sa se miste (indicand faptul ca placa nu este legata de soft). acesta poate codifica si decodifica trei intrari video si trei iesiri video. Computerul recunoste noul hard si lanseaza Add New Hardware Wizard.21. RAM dynamic sincron (SDRAM). SW11. In plus. Blackfin BF533 Aceasta placa are patru intrari audio (audio input) si sase canale de iesire audio. Vom introduce componentele hardware în EZ-KIT. Aceasta placa consta din intrari si iesiri stereo pentru conectari. codificatoare video. EZ-KIT este interfata programului VisualDSP++(gazduit pe calculator personal) prin intermediul unui cablu de interfata USB. flash. Figura 1. SW12. Figura 1. si SW13) si sase leduri principale (LED1-LED6). cablul USB este conectat la placa si la computer. Cu toate acestea. EZ-KIT este o platforma hardware care include un processor Blackfin inconjurat de alte dispozitive.3 10/100 Ethernet.Utilizarea procesorului Blackfin BF533 sau a procesorului BF537. In continuare.

. ca in Figura 1. New Session pentru configurarea placii BF533. Dati click pe OK si notati schimbarea in VisualDSP++.amplasate pe EZ-KIT CD-ROM.22 BF537 EZ-KIT Mediul VisualDSP++ poate fi schimbat cu EZ-KIT cu ajutorul urmatorilor pasi: Dati click pe Session si o sa va apara fereastra New Session. Acum putem rula acelas proiect dar pe placa BF533. Schimbati in aceasta fereastra optiunea de Debug target si la optiunea Platform cu ADSP-BF533 EZ-KIT Live via Debug Agent.23. Odata ce USB-ul este instalat cu succes. Figura 1. LED-ul galben ar trebui sa ramana aprins.23. Figura 1.

pentru a crea o pagina goala pentru editoare in VisualDSP++. Salvati acest fisier in c:\adsp\chap1\exp1_2.24. ca in imaginea de mai jos. apoi Project. 1. crearea a doua noi fisiere sura vecadd_main. Click pe Finish si Yes pentru a crea un nou proiect. pentru a efectua calculul a doi vectori a si b. Rezultatul este salvat in matricea a treia. ca in imaginea de mai jos. adica matricea c.2.c. ca in Figura 1. Din meniul File. Folosind fisierele sura anterioare ca sabloane.24 3.EXPERIMENT 1. Introduceti directorul si numele noului proiect dupa cum se arata si in Figura 1. . 2. Folositi File->New -> File. Va va aparea fereastra Project Wizard.c si vecadd. alegeti fereastra New.

Click pe Project -> Project Options.25.Figura 1. asa cum se vede si in Figura 1. .Un proiect gol este creat in fereastra Project.24 Fereastra Project Wizard. 4.

Acum sursele au fost adaugate.> File(s) . Click pe Compile .> General (1). Figura 1. si dat click pe Enable optimization. Pentru a adauga sursa la noul proiect faceti urmatorii pasi: Project -> Add to Project . ca in Figura 1. 6. ca in imaginea de mai jos. . Selectati cele doua fisiere sursa si dati click pe Add.26 Fereastra pentru compilare.Figura 1.25 Project Options 5.26.

Astfel se va proceda si pentru urmatoarele doua matrici. Figura 1. Dati Click pe Add din Figura 1. Partea 1: Construirea si rularea primului program Programul ales foloseste doua tipuri de functii clasice: functia de sortare bubble si functia de sortarea quick.28 Afisarea matricei a Exercitiul 1.27 pentru a adauga matricea a. Pentru a nu mai rescrie programul codului intreg al Exercitiului 1 puteti sa-l deschideti de pe VisualDSP++ al CD-ului de distributie. cum este afisat in Figura 1. Utilizati aceeasi pasi pentru urmatoarele doua matrici. se va afisa graficul matricii a. Partea 1 a programului poate fi gasita in: <install_path>\Blackfin\Examples\ADSP-BF537 EZ-Kit Lite\Getting .Figura 1.28.27 Fereastra Plot Configuration 3. Dupa ce au fost introduse valorile pentru matricea a in fereastra Plot Configuration. Suntem familiarizati cu acesti algoritmi.

Odata ce proiectul este deschis. Sort_1_1. Implicit in <install_path> este in C:\Program Files\Analog Devices\VisualDSP 5. facad dublu click pe eticheta Sorts. Creem fereastra Plot pentru matricea out_b: 1. ca in figura de mai jos. sau apasand tasta F7.c. Dupa ce programul este incarcat. Pentru ca matricile out_b si out_m sa fie introduse in cadrul graficului.Started Examples\Part_1_1 subdirectory. Deschideti fisierul de proiect pentru prima parte a Exercitiului 1. selectand proiectul din fisierul1. (ca in imaginea de mai jos) dupa in directorul exercitiului.0. iar bara albastra selectata in cadrul functiei main() arata unde programul se opreste atunci cand este data comanda Running (tasta F5). acesta nu are erori la compilare.dpj. trebuie sa creem pasii pentru fereastra Plot. prin selectarea urmatorilor pasi : File -> Open -> Project. puteti vizualiza codul sursa. Selectam View ->Debug Windows -> Plot -> New din cadrul meniului . Puteti compila programul cu ajutorul urmatoarelor obtiuni: Project -> Build Project.

si va va aparea fereastra Plot Configuration. 2. ca in imaginea de mai jos. Schimbam fereastra Tite cu Monitoring out_b. .

Click pe Add si apoi click pe OK. Va vor aparea urmatoarele imagini: Figura 1-3. Repetati acest proces si pentru variabila out_m.3. 4. ca in imaginea de mai jos. 6. In campul Address acrieti variabila out_b. Schimbati in cadrul campului Data cu tipul de date int. 5. Plot Window . In campul Count scrieti 128.

Release. Pentru a inchide un program parcurgem urmatorii pasi: File -> Close -> Project.dpj . .Cele doua grafice sunt plasate la zero. pentru a demonstra efectele de plasare de memorie. o sa inchidem programul creat anterior pentru a construi altul. Aceste configuratii sunt : • Debug. Comanda F10 sau Step Over este creata pentru a observa ca matricea out_b a fost selectata. deoarece matricile de date sunt initializate la zero in VisualDSP++. Deschideti un nou proiect astfel: <istall_path>\Blackfin\Examples\ADSP-BF537 EZ-Kit Lite\Getting Started xamples\Part_1_2\Sorts_1_2. cele doua ferestre arata valori aleatoare la care matricile sunt initializate.fiind initializata cu fiecare valoare. Acest cod a fost plasat (pentru moment) in externalul SDRAM. Folosit pentru crearea functiilor dumneavoastra din cadrul sistemul Dupa ce ne-am familiarizat cu pasii de pornire in Visual DSP++. Utilizata pentru depanarea functionala a sistemului dumneavoastra. Este de mentionat ca Partea 1 foloseste configurarea cu debug ( Figura 1-4) Figura 1-4 Project Debug Configuration VisualDSP++ adauga automat doua configuratii pentru fiecare proiect creat.

Figura 1-6. Rulati programul folosind Debug–>Run (sau F5).Figura 1-5 Configurarea lansarii proiectului. vom folosi programe statistice. Pentru partea a doua a programului. Selectati configurarea pentru proiect prin alegerea optiunii Release pentru dropdown box (Figura 1-5). . afişează starea acestuia de informare în colţul din dreapta jos a VisualDSP + +. În cazul în care programul se execută. prin selectarea Tools–>Statistical Profiling–>New Profile. Programul poate intarzia 30 de secunde sau mai mult pentru a rula la finalizare. Apoi utilizati Project->Rebuid All. pentru a construe versiunea optimizata a programului.

Figura 1-6 Informarea starii programului. pagina Console din fereastra Output. xxxx cicluri). Nu este surprinzator. majoritatea timpului proiectului este petrecut in bubble. . In cazul in care programul se termina. apel plasat la sfarsitul functiei main(). Statistical Profiling: Initial Results. algoritmul de sortare. unde rezultatele pot varia usor pe computer. Mesajul este de iesire. afiseaza un mesaj informativ (in textul verde. similar cu “xx secunde in aprox. penreu printf(). Figura 1-7. In Figura 1-7. se afla Statistical Profiling.

Part2: Impactul ierarhiei de memorie si a selectiei O alta performanta a procesorului Blackfin este aceea de a plasa algoritmii in memoria interna. in care se consuma majoritatea puterii de procesare. .3.Procesorul Blackfin are o ierarhie de memorie cu o cantitate mica de SRAM intern(L1). Pentru cache-ul de instructiuni: . Statistical Profiling: Results after Moving bubble_sort() Daca quick_sort() este mutat in memoria interna precum si timpul total de executie . este in prezent cel mai mult timp consumat. . . .Click OK pentru a seta optiunea de proiect nou. (Figura 1-9). Profilul de statistica arata un efect interesant de schimbare: functia bubble_sort() nu mai foloseste cel mai mare procent din procesor time-quick_sort().Deschideti Project–>Project Options sau ALT-F7.Reconstruiti proiectul selectand Project–>Rebuild All Exercitiul 1. . Puteti configura SRAM cu un cache pentru un SDRAM extern mai lent sau ca “drept” de memorie. revenind la raportul de asteptare.4. pentru zero latenta. imbunatateste si viteza relativa a bubble_sort() versus quick_sort().2. in configuratia sa. In programul bubble_sort() se afla “cheia algoritmului”. Figure 1-9.1.In Project and Memory Protection sub Startup Code Settings (Figura 1-8).5. viteza de acces.Dati pe Instruction cache memory si selectati casuta Enable instruction cache.