• Non ci sono risultati.

Capitolo 3 L’ambiente di sviluppo

N/A
N/A
Protected

Academic year: 2021

Condividi "Capitolo 3 L’ambiente di sviluppo"

Copied!
8
0
0

Testo completo

(1)

Capitolo 3

L’ambiente di sviluppo

Per realizzare questo progetto che monta a bordo il DSP TMS320VC5401 è stato utilizzato l’ambiente di sviluppo Code Composer della Texas Instruments. Tale ambiente comprende una scheda hardware che si connette direttamente all’interno del PC sul bus ISA. A questa scheda, tramite un cablaggio, si collega il connettore del JTAG, tramite il quale si può operare la fase di debug. Oltre naturalmente alla parte hardware c’è anche il software, che comprende: ambiente di sviluppo, compilatore, linker, debugger e quant’altro sia necessario allo sviluppo e alla verifica della funzionalità delle schede che montano DSP appartenenti alla famiglia TMS320VC54XX.

3.1 Ambiente di sviluppo – Parte hardware

Per quanto riguarda l’hardware compreso nell’ambiente di sviluppo una componente fondamentale è l’emulatore. Nella seguente figura è mostrata l’interfaccia esterna dell’emulatore, che si occupa di adattare i segnali a 3.3 V rilevati sulla scheda target, ed i segnali a 5 V presenti sulla scheda di emulazione alloggiata all’interno del PC occupando uno dei suoi slot “ISA Bus”.

(2)

Nella parte in basso a sinistra si trova il connettore JTAG femmina che si connette direttamente al connettore JTAG maschio presente sulla scheda del CF-P/R. Tramite questa connessione vengono portati i segnali gestiti dal protocollo JTAG.

Figura 1: Interfaccia esterna, con Pod, dell’emulatore

(3)

Nella precedente figura si riporta lo schematico del connettore del JTAG sulla scheda del CF-P/R. Si può notare che i pin collegati a questo connettore sono tutti direttamente connessi al DSP: l’architettura dello stesso DSP è stata disegnata opportunamente al fine di poter supportare il rilevamento “On Chip” dello stato delle singole strutture del DSP durante il suo funzionamento, grazie a “firmware” di comunicazione allocato in ROM a bordo del DSP stesso assieme al firmware di boot. I pin relativi del DSP sono:

Figura 3: Piedini del DSP che vanno al connettore JTAG

Il cablaggio del sistema è quindi molto semplice: per caricare il codice, gestirne l’esecuzione passo passo, controllare il contenuto di tutti i registri sia della CPU che di tutte le periferiche, nonché di tutti gli spazi di memoria e di I/O presenti, basta solo collegare il connettore JTAG alla scheda.

3.2 Ambiente di sviluppo – Il Code Composer

Il sistema utilizzato per scrivere il codice e per portare aventi tutto il progetto è il Code Composer della Texas Instruments, versione 2.0. Tale ambiente ha al suo interno molte funzioni e possibilità, previste tramite il sistema (protocollo) JTAG, che sono state indispensabili nel debug della scheda e senza le quali la soluzione dei vari problemi incontrati sarebbe stata molto più gravosa e impegnativa. Una prima schermata mostra come si presenta il nostro progetto:

(4)

Figura 4: Worksapce utilizzato per il progetto del CF-P/R

Per lavorare al progetto lo spazio di lavoro (workspace) è stato così impostato:

1. A sinistra abbiamo la colonna del Project Manager dove si vede il file relativo al progetto (Fc_Player.pjt) e tutti i file annessi al progetto stesso: un file command (*.cmd) dove vengono definite le sezioni di memoria nelle quali andranno le variabili utilizzate, diversi files “include” nei quali sono state definite funzioni già utilizzate in altri progetti e che poi possono tornare utili nel nostro, poi c’è la libreria rts.lib, necessaria all’ambiente di sviluppo, e infine i files di sorgente. I files di sorgente relativi al progetto definitivo sono due: vectors.asm e FCPST_MSWABB06fin.c. Nel file vectors.asm si inserisce l’indirizzo dell’entry point, ovvero il punto dal quale il programma riprende l’esecuzione dopo la fase di reset, nella tabella delle interruzioni. Invece

(5)

FCPST_MSWABB06fin.c non è altro che la release finale del codice alla quale ci si è poi riferiti nella stesura del capitolo 3.

2. Al centro abbiamo la finestra che visualizza il codice sorgente e nella quale si può intervenire per apportare le modifiche.

3. Sulla destra sono state sistemate due finestre che visualizzano due porzioni (selezionabili a piacimento) della memoria programma perché è qui che si può andare a visualizzare il contenuto delle variabili e quindi verificarne la corretta scrittura e/o lettura dopo l’esecuzione di porzioni di codice, come si fa nel normale debug di un programma.

4. In basso si ha una finestra nella quale vengono visualizzati i vari registri interni alla CPU, i registri delle periferiche hardware a bordo del DSP, il valore degli accumulatori, del Program Counter, ecc. La possibilità di visualizzare il valore che va a finire in questi registri può tornare utile nella fase di debug, per verificare che avvenga effettivamente quanto scritto nel codice.

5. Nell’ultimo riquadro in basso a sinistra si trova la finestra di dialogo che informa dello stato di avanzamento del file nel suo processo di compilazione, linkaggio e caricamento sul DSP.

Nella seguente figura si vede come, dopo aver lanciato la compilazione del file sorgente per la seguente costruzione del file oggetto, l’operazione termini col caricamento del file sul DSP (avendo noi impostato il sistema in modo che compia quest’operazione automaticamente alla fine del processo):

(6)

Figura 5: Caricamento del file sul DSP

Una volta caricato il file è possibile procedere alla fase di debug mandando in esecuzione il codice. Alla fine del caricamento infatti si apre una finestra che mostra il disassemblato del codice con il puntatore (che segna la prossima istruzione che verrà eseguita) che punta all’inizio del codice. La figura seguente mostra quanto scritto sopra:

(7)

Figura 6: Fase di debug

Una volta caricato il codice sul DSP è possibile “debuggarlo” esattamente come un qualsiasi altro programma scritto in linguaggio C o assembler. Infatti è possibile inserire dei breakpoint nel codice oppure procedere ad un’esecuzione passo passo oltre che naturalmente mandare in esecuzione il codice normalmente. Una volta interrotta l’esecuzione è sempre possibile ispezionare l’attuale valore contenuto degli accumulatori, nei vari registri, nella memoria, ecc.

Nella figura sotto si ha un esempio di inserimento di breakpoint nonché di eseczione passo passo:

(8)

Figura

Figura 1: Interfaccia esterna, con Pod, dell’emulatore
Figura 3: Piedini del DSP che vanno al connettore JTAG
Figura 4: Worksapce utilizzato per il progetto del CF-P/R
Figura 5: Caricamento del file sul DSP
+3

Riferimenti

Documenti correlati

- Uso dei modi e dei tempi nelle subordinate e concordanze: verbi di opinione alla forma affermativa, interrogativa e negativa; verbi di volontà, verbi di

Quando si presentano applicazioni in regime laminare con scambio di calore, gli static mixer possono favorire lo scambio rispetto al classico tubo vuoto o senza

Ma il compito dell’Università non è solo quello della formazione alla professione, o dovrebbe es- serlo nel suo senso più alto: insegnare a “professare” una disciplina,

Al contempo, poiché il prezzo proposto dalla Givas era comunque conveniente, è stato chiesto alla stessa di proporre delle barre da seduta di dimensioni più vicine alle esigenze

LE PASSIVITÀ CIOÈ I VALORI PASSIVI DEL PATRIMONIO COSTITUISCONO I DEBITI DELL'IMPRENDITORE, DEBITI CHE SONO STATI NECESSARI PER EFFETTUARE

fluorometano bromoetano diclorometano triiodometano. 2-bromo-2-metilpropano

Soluzioni dei problemi del

[r]