Code Composer Studio

Parliamo del ormai diffusissimo ambiente di sviluppo di Texas Instruments. L’obiettivo di questo articolo è fornire una breve presentazione sull’argomento a quanti ancora non conoscono questo praticissimo strumento. A seguire un semplice progetto di esempio basato su microprocessore MSP430.

Code Composer Studio è la versione dell’ambiente di sviluppo di Texas Instruments, ora basato sul software framework open source Eclipse. Questo framework è utilizzato da moltissime applicazioni ma originariamente è stato sviluppato proprio per creare ambienti di sviluppo, per questo motivo Texas Instruments, così come molti altri produttori di software embedded, ha deciso di utilizzare Eclipse. Solitamente si abbrevia la nomenclatura del Code Composer Studio con CCS o CCSv4 (comprensivo di versione), anche noi di seguito sfrutteremo questa nomenclatura. Il CCS abbina la versatilità del framework Eclipse alle avanzate possibilità di debug, frutto di anni di esperienza nel settore.

CCS PER MSP430

Nel corso dell’articolo ci occuperemo dell’installazione e dell’utilizzo del CCS per l’utilizzo con la famiglia MSP430. Si tratteranno in dettaglio tutte le fasi a partire dall’installazione, dalla creazione di un progetto fino al debug. Per descrivere le operazioni, si considererà di partire dai CD-ROM o DVD che Texas Instruments mette a disposizione sia con il CCS che con i Kit dei processori MSP430. Chi non ne fosse in possesso, può sempre eseguire il download dal sito web di Texas.

INSTALLAZIONE DEL SOFTWARE

Per installare il Code Composer Studio, dal DVD in dotazione, eseguire il file setup_CCS_x.x.x.x.x.exe. Se, invece, si scarica il pacchetto di installazione da Internet, sarà necessario decomprimere anticipatamente il file zip scaricato e solo dopo eseguire il file setup_CCS_4.2.x.x.x.exe. Seguendo le istruzioni che vengono presentate sullo schermo, si potrà osservare come vengano installati anche i driver USB per gli emulatori JTAG (MSP-FET430UIF e per la serie eZ430). I driver per il FET su porta parallela non sono installati ma, se si desiderano, si possono abilitare tra le opzioni di installazione. In figura 1 si possono osservare i requisiti minimi per il sistema che ospiterà il CCS.

Figura 1: requisiti minimi di sistema per il CCS4.2.

Figura 1: requisiti minimi di sistema per il CCS4.2.

Insieme al CCS sono installati anche una serie di progetti preconfigurati che compiono delle semplici operazioni. Il classico esempio è il progetto “Hello world”, che non esegue nient’altro che una stampa su porta seriale della stringa in questione. Un’altra applicazione molto semplice contenuta nel pacchetto di installazione del CCSv4.2 non fa nient’altro che far lampeggiare dei LED, scaricabile tramite l’emulatore FET e tranquillamente eseguibile. Per prima cosa dobbiamo far partire il programma dall’elenco dei programmi o dall’icona sul desktop del PC, creare un nuovo progetto selezionando File ® New ® CCS Project. Inserire un nome per il progetto e premere next. Selezionare come tipo di progetto MSP430. Cliccare ancora next due volte per arrivare alla pagina CCS Project Settings. Selezionare la variante di dispositivo utilizzato nel progetto. A questo punto non rimane che aggiungere il codice di esempio “flashing LED” semplicemente cliccando Project ® Add Files to Active Project. Il codice si trova in <Installation Root>\ccs4\msp430\examples, dalla tabella di figura 2 si possono ricavare i sorgenti adeguati in base al dispositivo impiegato. La figura 3 mostra la finestra principale del CCS.

Figura 2: percorso per i file di esempio in base alla famiglia MSP430.

Figura 2: percorso per i file di esempio in base alla famiglia MSP430.

 

Figura 3: finestra principale del CCS.

Figura 3: finestra principale del CCS.

Se si utilizza un USB Flash Emulation Tool come il MSP-FET430UIF o un eZ430 Development Tool, sono gia configurati di default. Nulla vieta di cambiare l’interfaccia di debug aprendo il file *.ccxml nel progetto. Il menu a tendina (come in figura 4) contiene sia la connessione TI MSP430 USBx sia TI MSP430 LPTx (nel caso si sia selezionato anche il supporto su porta parallela nel momento dell’installazione).

Figura 4: configurazione del target device.

Figura 4: configurazione del target device.

Ricordarsi di salvare i cambiamenti per far sì che abbiano effetto. A questo punto non rimane che compilare il codice ed eseguire il download sul dispositivo target. Andare su Target Debug Active Project (figura 5). Selezionando Target Run (F8) oppure cliccando sul pulsante Play nella toolbar, ha inizio l’esecuzione del codice. Se tutto funziona correttamente, abbiamo appena testato con successo un applicazione su MSP430.

Figura 5: debug del progetto.

Figura 5: debug del progetto.

CREAZIONE DI UN PROGETTO

Vediamo ora la procedura passo passo per la creazione di un progetto partendo da zero. I sorgenti possono essere in C o in assembler e il risultato sarà eseguito sempre dal nostro MSP430. Per prima cosa, ovviamente, avviare il Code Composer Studio. Selezionare File ® New ® CCS Project per creare un nuovo progetto. Inserire il nome del progetto e cliccare su next, impostare il Project Type a MSP430. Cliccare next ancora due volte per arrivare alla pagina CCS Project Settings e selezionare il dispositivo utilizzato e cliccare su Finish. Per progetti puramente in assembly, assicurarsi di selezionare “Configure as an assembly only project”. A questo punto non rimane che creare i file di codice, dal menu selezionare File ® New ® Source File, inserire il nome e selezionare la tipologia di file per la corretta estensione (.c or .asm). Se, invece, si desidera utilizzare del codice esistente, allora selezionare Project ® Add Files to Active Project e ricercare i file desiderati. Ricordare che l’aggiunta di file al progetto genera una copia degli stessi nella cartella di progetto, ogni successiva modifica sarà applicata solo su questi file. Se, invece, si desidera lavorare su file che non risiedono nella cartella di progetto, allora si dovrà realizzare un collegamento selezionando Project ® Link Files to Active Project. Aggiungere il codice desiderato ai file del progetto. Impostare le opzioni di connessione aprendo il file *.ccxml nel progetto, sarà necessario specificare l’interfaccia utilizzata per il debug, sempre che non ci si voglia appoggiare su quella standard di fabbrica. Una volta terminato il progetto, sarà necessario compilarlo, dal menu selezionare Project Build Active Project. Se la compilazione non dà messaggi di errore a questo punto si passa al debug dell’applicazione. Selezionare Target ® Debug Active Project, questo permette al debugger di prendere il controllo del dispositivo, cancellare la memoria e programmarla con l’applicazione appena progettata, lasciando il dispositivo fermo in una situazione di reset. Dalla toolbar o tramite il menu Target Run, è possibile iniziare ad eseguire il codice, cliccando Target ® Terminate All si ferma l’esecuzione e si esce dal controllo del debugger. Dal CCS si ritorna automaticamente alla finestra di editing del codice. Ovviamente, raccontata in questo modo la creazione di un progetto sembra facilissimo, in realtà non è proprio così, tuttavia un po’ di pratica e buona volontà è tutto ciò che serve. Ogni singolo progetto necessita delle specifiche configurazioni, dal menu Project ® Properties si accede ad una finestra dove è possibile specificare:

  • Il dispositivo per la sessione di debug.
  • Le ottimizzazioni di compilazione.
  • Il percorso di ricerca per il preprocessore C.
  • Il percorso di ricerca se si utilizzano librerie.
  • Impostare la cancellazione di tutta la memoria prima del download del codice.
  • Decidere se abilitare o disabilitare i software breakpoint.

In più, come detto, dal file *.ccxml bisogna impostare l’interfaccia di debug (TI MSP430 LPTx oppure TI MSP430 USBx). Ovviamente, un progetto creato in  una  versione precedente del CCS può essere tranquillamente importato. La conversione dei workspace e dei progetti creati nelle versioni precedenti, è possibile effettuarlo tramite il comando File ® Import ® General ® Existing Projects into Workspace ® Next. Ovviamente, se nel workspace esistono più progetti verrà chiesto quali devono essere importati e convertiti. Per i progetti in Code Composer Essential versioni 2 e 3, un lavoro manuale sul file di configurazione (*.ccxml) è indispensabile dopo l’importazione. In molti casi si riceve un avvertimento sul fatto di importare un progetto costruito con un diverso Code Generation Tools (CGT). Se il progetto da importare è stato creato con la versione 2 del programma, il supporto dei file header per il linguaggio C è stato modificato da quella versione per rendersi compatibili con IAR Embedded Workbench® IDE (interrupt vector definitions). Sarà necessario rimuovere i “//“ davanti alle #define presenti alla fine del file each .h nella sezione “Interrupt Vectors”. Un’altra impostazione da definire per il progetto, è la dimensione dello stack. Dal menu selezionare Project Properties ® C/C++ Build ® Tool Settings ® MSP430 Linker ® Basic Options ® Set C System Stack Size. Solitamente tale dimensione si estende dall’ultima locazione in RAM per 50/80 byte (dipende anche dalla memoria a disposizione). Bisogna evitare problemi di stack overflow dovuti a dimensioni troppo piccole di memoria o errori nell’applicativo. Il programma mette, comunque, a disposizione degli strumenti per tracciare la dimensione dello stack. Integrato nel CCS è presente il tool di conversione hex430.exe. Può essere configurato per generare un file in formato TI-TXT da utilizzare con i programmatori MSP-GANG430 e MSPPRGS430 cosi come per produrre un file in formato INTEL-HEX per la programmazione in produzione.

DEBUG DI UNA APPLICAZIONE

In precedenza abbiamo elencato le operazioni per eseguire il debug di una applicazione direttamente utilizzando il CCS. Una delle operazioni fondamentali per il debug è l’inserimento dei breakpoint. Il numero di breakpoint inseribili è legato alle risorse di debug on-chip o più specificamente al numero di breakpoint register. Quando con le interruzioni non si supera il numero di registri, il debug avviene realtime, ossia il dispositivo non è rallentato. Se si supera tale numero e si attivano i software breakpoint, allora le tempistiche di esecuzione potrebbero subire delle modifiche. Da notare che il punto di partenza dell’applicativo comporta gia l’utilizzo di un breakpoint. Anche l’utilizzo di una printf su console di programma necessita di un breakpoint, tuttavia questo può essere disabilitato mantenendo la funzionalità della console tramite Project Properties ® CCS Debug Settings ® Target ® Generic Debug Options ® Enable CIO function use. Per vedere quanti breakpoint sono piazzati e in quale posizione si trovano si può abilitare una finestra dedicata passando dal menu: Window ® Show View ® Breakpoints. In aggiunta ai breakpoint il CCS permette di inserire dei watchpoint, per fermarsi su un accesso ad un indirizzo di dati per mantenerne controllato il valore.

Scrivi un commento