FREESCALE/NXP – CodeWarrior Development Suite

Benvenuti ad un altro appuntamento con la rubrica Firmware Reload. In questo articolo parliamo di CodeWarrior di Freescale (NXP), che costituisce uno dei più conosciuti e fortemente apprezzati ambienti IDE (Integrated Development Environment) per lo sviluppo di applicazioni hardware e software esistenti sul mercato. Freescale (NXP) deriva da uno “spin-off” della Motorola dopo aver acquisito da quest’ultima, dal 2004, il settore dei semiconduttori.

I progettisti di sistemi embedded utilizzano compilatori, assembler e debugger per un corretto sviluppo. In generale, programmi più specifici ne costituiscono anche il principale fattore di utilizzo:

  • Un In-Circuit-Emulator (ICE) per il debug del codice;
  • Utility di controllo ridondanza (checksum) o un Cyclic Redundancy Check (CRC) al programma;
  • Compilatori e linker specifici per ottimizzare l’hardware;
  • Supporto BSP (Board Support Package) per semplificare l’integrazione tra il software sviluppato ad-hoc, l’ambiente operativo e l’hardware.

I tool per la programmazione dei microcontrollori non differiscono molto, le fasi principali sono sempre le stesse: scrittura del codice sorgente, compilazione e/o assemblaggio, generazione del codice binario. Il CodeWarrior è un ambiente di sviluppo integrato (IDE) per la creazione di software su un certo numero di sistemi embedded. E’ stato originariamente sviluppato da Andreas Hommel, e concesso in licenza a Metrowerks, sulla base di un compilatore C e l’ambiente per il 68K Motorola. Le prime versioni di CodeWarrior sono per il Macintosh PowerPC, con gran parte dello sviluppo fatto da un gruppo dell’originale team THINK C. CodeWarrior è un prodotto professionale formato da un’insieme di suite, dalla più semplice a quella più sofisticata. Freescale (NXP) ha incorporato nella versione più recente, dei tool di sviluppo funzioni e utility in grado di incrementare notevolmente la facilità d’uso, la velocità e l’accessibilità rispetto alle precedenti versioni di CodeWarrior. Il software CodeWarrior punta, in particolare, alla facilità d’uso e alla semplicità dello sviluppo applicativo. I tool prevedono anche aggiornamenti dei prodotti e service pack forniti direttamente da Freescale (NXP).

L’IDE DI CODEWARRIOR

Le versioni demo sono divise in due categorie: la Evalutation Edition, completamente funzionante ma con 30 giorni di utilizzo (salvo inserimento codice di licenza) e la Special Edition con restrizione solo nella dimensione massima del codice generabile. La versione Evalutation è disponibile sia per Windows che per Linux e dispone di una gamma elevata di librerie di microcontrollori della Freescale (NXP); la Special Edition, invece, offre una scelta tecnica più ristretta ma permette in ogni caso un approccio iniziale nell’ambito della programmazione di sistemi embedded. L’IDE di CodeWarrior presenta diversi vantaggi strumentali tra i quali:

  • Sviluppo multipiattaforma: sviluppare il software per funzionare con più sistemi operativi o utilizzare più host per sviluppare lo stesso progetto. L’IDE lavora su sistemi operativi più diffusi, tra cui Windows, Macintosh, Solaris e Linux, utilizzando praticamente la stessa interfaccia utente grafica (GUI) in tutti gli host;
  • Supporto multilingua di programmazione: è possibile scegliere tra i più importanti linguaggi di programmazione nello sviluppo di software. L’IDE supporta linguaggi di alto livello come C, C++ e Java, così come assemblatori in linea per la maggior parte dei processori;
  • Ambiente di sviluppo coerente: importazione di nuovi processori. L’IDE supporta molte famiglie di processori Embedded, inclusi x86, PowerPC e molti altri;
  • Strumenti di supporto plug-in: estendere le funzionalità dell’IDE aggiungendo uno strumento plug- in che supporta nuovi servizi. L’IDE, attualmente, supporta i plug-in per i compilatori, linker, pre- linker, post-linker, pannelli delle preferenze, i controlli di versione ed altri strumenti. I plug-in consentono alla IDE CodeWarrior di elaborare diversi linguaggi di programmazione.

Il CodeWarrior IDE è una suite che fornisce sofisticati strumenti per lo sviluppo software. Gli strumenti standard disponibili nell’IDE sono i seguenti: un Project Manager, un Editor, Search Engine, un Browser, un Sistema di Compilazione e un Debugger. In particolare, la funzionalità Browser, permette la gestione di un database con assistenza nella navigazione del codice. Collegamenti di ogni simbolo ed altre posizioni nel codice relativo. Elaborazione sia orientata agli oggetti sia a livello procedurale. Per ogni livello di progettazione, la gestione comprende i seguenti punti essenziali:

  • Ordine di collegamento
  • Dipendenze
  • Compilatore, linker e altre impostazioni

Il Project Manager (Figura 1) aggiorna automaticamente la destinazione di generazione del codice, coordinando anche il programma con le informazioni di build-target per chiamare gli appositi strumenti nell’ordine corretto con le impostazioni specificate. Ad esempio, il Project Manager dirige il sistema di compilazione per i soli file di origine che si basano su informazioni in un file modificato. Notare che tutte questa operazione avviene automaticamente. Lo sviluppatore di software non ha bisogno di ricordare la sintassi makefile o semantica e non dovrà mai eseguire il debug di errori di sintassi tipo makefile. L’IDE semplifica il processo, rendendolo più facile per lo sviluppo software. Il Project Manager supporta, inoltre, molteplici obiettivi di compilazione all’interno dello stesso file di progetto. Ogni destinazione di generazione può avere le proprie impostazioni univoche e persino utilizzare fonte diversa e file di libreria. Ad esempio, è comune avere il debug e rilasciare build targets in un progetto.

Figura 1: Project Manager

Figura 1: Project Manager

CODEWARRIOR, PROJECT WINDOW PAGE

La Project Window (Figura 2) permette l’organizzazione di file di vari aspetti. La finestra comprende le seguenti principali voci: barra degli strumenti, tabs e colonne. La pagina File riporta le informazioni sui file di un progetto.

Figura 2: Project Window

Figura 2: Project Window

Le voci che ne comprendono possono essere le seguenti:

  • File di testo: file che contengono qualsiasi testo (Figura 3)
  • Source file: file che contengono il codice sorgente
  • Library file: file che contengono codici speciali per lavorare insieme con un linguaggio di programmazione o con un ambiente di sviluppo
Figura 3: Editor di Code Warrior

Figura 3: Editor di CodeWarrior

 

Figura 4: Window components

Figura 4: Window components

La Project Window elenca tutti i file per tutti i target. Se i percorsi di accesso sono diversi per ogni target ed esiste un file con lo stesso nome in ogni percorso, la Project Window elencherà le occorrenze di ogni file. Ad esempio, se due file d’intestazione denominati example.h vengono associati a due obiettivi (TargetA e TargetB), ed esistono in luoghi separati per ogni target, si osserveranno due voci di example.h nella Project Window. Inoltre, se entrambi gli obiettivi utilizzano lo stesso file in una posizione, una singola voce apparirà nella finestra di gestione del progetto. Selezionare un file nella scheda “File” della finestra di progetto, per visualizzare la finestra Project Inspector tale da rilevare il percorso del file selezionato. È anche possibile selezionare un file e fare clic con il pulsante destro del mouse per visualizzare un menu di scelta rapida. Se un punto nero è presente nella colonna di destinazione per un elenco di file, significa che è in riferimento corrente. È possibile selezionare questo punto per attivare o meno l’inclusione di file con i targets specifici. Se si attivano le voci del progetto utilizzando l’opzione “Salva percorsi relativi” nel pannello “Impostazioni di destinazione”, le posizioni dei file saranno memorizzate utilizzando un percorso relativo. Se disattivato, l’IDE ricorderà le voci di progetto solo in base al nome. Ciò può causare risultati imprevisti se due o più file condividono lo stesso nome.

Figura 5: Simulation Tool

Figura 5: Simulation Tool

 

Figura 6: File Components

Figura 6: File Components

IL SIMULATORE

La parte più rilevante di CodeWarrior è la sezione del Simulatore (Figure 4, 5 e 6), che insieme al Debugger permette di testare il programma appena creato senza far riferimento a nessun hardware. Il Visualization Tool offre una vasta gamma di scelta di oggetti software per fornire all’utente il controllo necessario su un ingresso o uscita del microcontrollore da un punto di vista reale. Gli oggetti di gestione sono la progress bar, indicatore a lancetta, slider, interruttori, lampadine, tutto il necessario di quanto può essere utile per dar vita ad una sorta di “strumento virtuale” in grado di attivare in maniera opportuna il microcontrollore ed osservarne i risultati in uscita. Il programma può essere testato senza la necessità di trasferire direttamente il programma in memoria del microcontrollore reale. In questo modo la maggior pare di bugs software possono essere eliminati. I bugs hardware rappresentano un altro problema del quale, in fase di progettazione, il designer dovrà tener conto per evitarli. Gli ambienti IDE (Figura 7) per i microcontrollori permettono un risparmio di tempo enorme per il progettista, che può così dedicare la sua attenzione al debug della scheda prototipo fisica, con la ragionevole certezza che la quasi totalità dei bug, o almeno i più importanti, siano già stati eliminati sul nascere.

Figura 7: Esempio di simulazione

Figura 7: Esempio di simulazione

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend