Home
Accesso / Registrazione
 di 

Alla scoperta dei D.S.P. Terza puntata 4/4

Alla scoperta dei D.S.P

In questo caso, l’istruzione contiene il valore dell’indirizzo di memoria su cui compiere un’operazione. Un esempio del genere viene fornito dall’istruzione: “LACC 0300h,0”, dove il valore contenuto nella locazione 300 hex viene immediatamente trasferito nell’accumulatore. Il TMS320C50 consente di indirizzare delle locazioni di memoria utilizzando dei registri dedicati, per la precisione il BMAR (Block Move Address Register) e il DBMR (Dynamic Bit Manipulation Register). Il BMAR viene utilizzato dalle istruzioni BLDD, BLDP, BLPD, MADD e MADS per indirizzare una locazione di memoria dati o di memoria programma. Il DBMR lavora invece con le istruzioni APL, OPL, CPL e XPL che leggono il contenuto di tale registro per indirizzare solo la memoria dati. L’ultimo metodo di indirizzamento disponibile nel TMS320C50 viene denominato Circular Addressing. In questo caso, vengono creati e indirizzati due registri detti circolari in cui memorizzare o leggere dei dati.

I buffer circolari sono gestiti dai registri di stato (CBCR), mentre l’indirizzamento è affidato alla ARAU che calcola le locazioni di memoria a cui corrispondono le celle del registro circolare. L’indirizzamento vero e proprio avviene attraverso gli Auxiliary Register (ARP) che vengono incrementati o decrementati dopo ogni lettura in funzione del senso di “rotazione” di lettura o di scrittura dei dati nel Circular Buffer. Questo indirizzamento, seppur abbastanza inusuale, è particolarmente utile in diverse applicazioni come, ad esempio, nella creazione di filtri digitali.

I REGISTRI DI STATO

Un altro blocco fondamentale del TMS320C50 è rappresentato dai registri di Stato e di Controllo. Il registro principale di stato, formato da 16 bit, viene denominato ST0. I primi nove bit sono dedicati al puntatore della memoria dati (DP), il decimo seleziona l’interrupt mascherabile, l’undicesimo bit è fissato ad uno mentre il dodicesimo e il tredicesimo sono dedicati all’overflow.

dsp_registri_stato

Gli ultimi tre bit di ST0 definiscono uno degli otto registri ausiliari (ARP). Dopo l’ST0 troviamo, in ordine di importanza, il registro ST1 anch’esso a 16 bit. I due bit meno significativi di ST1 selezionano la modalità con cui moltiplicare due numeri binari. Il terzo, il quarto, l’ottavo ed il nono bit di ST1 sono posti ad 1 dall’hardware del D.S.P. e non vanno modificati. Il quinto bit indica lo stato del piedino XF mentre il bit 7 serve per bloccare il funzionamento del D.S.P. I restanti bit sono il flag di Carry , il bit per l’estensione del segno e il flag di Test. Questi ultimi bit, così come gli altri due principali registri di stato (CBCR e PMST), sono già stati sommariamente descritti nello scorso numero di Elettronica In. Concludiamo questa puntata con un esempio di programma assembler (riportato nella pagina precedente) in cui vengono applicate alcune istruzioni già descritte in questa trattazione. Il listato calcola una funzione elementare e memorizza il risultato in una particolare locazione di memoria. Il programma utilizza il registro ausiliario AR3 a cui assegna il simbolo “*” e le istruzioni di ripetizione per il calcolo della prima parte della formula. Il software viene poi fatto riciclare per estrapolare il più alto dei risultati ottenuti che viene memorizzato nella locazione identificata dalla lettera “y”.

Il kit è disponibile da Futura Elettronica

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 8 utenti e 58 visitatori collegati.

Ultimi Commenti