Iniziare con CodeWarrior IDE della Freescale

Iniziare con CodeWarrior IDE della Freescale

CodeWarrior Development Studio è un ambiente di sviluppo integrato (IDE) completo che fornisce un framework altamente panoramico e automatizzato per accelerare lo sviluppo di applicazioni complesse che utilizzano processori Freescale.

Se desideri maggiori informazioni su questo prodotto Freescale, invia una richiesta ad Arrow utilizzando il seguente modulo.

Una delle migliori caratteristiche di questo ambiente è il suo supporto alle piattaforme più utilizzate per gli sviluppatori: Windows, Linux, Mac, Solaris. Esistono anche versioni speciali per i sistemi operativi destinati alla PlayStation 2, alla Nintendo, alla Wii. Anche Palm OS e Symbian OS possono avviare Freescale CodeWarrior in una certa misura. L’IDE è incentrata su compilatori C e C ++ e comprende tutti i tool necessari per completare un progetto (software) integrato: editor di testo, compilatori, simulatori, debugger ecc.

A causa della grande complessità di un singolo strumento che supporterebbe un vasto range di prodotti Freescale, sono disponibili delle versioni di CodeWarrior speciali che sono specializzate nel lavorare con particolari famiglie di architetture. Questo permette inoltre di risparmiare denaro, tenendo conto che se si ha in programma di usare Freescale CodeWarrior per lo sivluppo su architettura ColdFire, si avrà bisogno di tutte le funzionalità DSP StarCore. Così, diverse versioni dell’ambiente sono disponibili per l’acquisto e supporto al download:

    – Controller di segnali digitali 56800/E
    – Sistemi integrati 68k
    – Architettura ColdFire
    – Microcontroller HCS12(X)
    – Microcontroller RS08/HC
    – Applicazioni mobileGT
    – Famiglia di processori MPC55XX
    – Processori Netcomm con Power Architecture
    – DSP StarCore

Freescale CodeWarrior – Un pò di storia

CodeWarrior è stato inizialmente sviluppato da una compagnia chiamata Metrowerks (Canadese) e puntava inizialmente ai PowerPC di Macintosh. Tuttavia, dopo l’acquisizione di Metrowerks da parte di Motorola nel 1999 (il pesce più grande mangia il pesce più piccolo) lo scopo di CodeWarrior cambiò verso i sistemi embedded; dopo il 2005 il supporto per processori Mac è stato interrotto completamente. Ai nostri giorni l’IDE appartiene a Freescale e supporta tutti i dispositivi sopra elencati. Secondo alcuni, il nome Codewarrior è stato ispirato dalla serie di film di Mad Max (Mad Max 2: The Road Warrior)

Freescale CodeWarrior – Iniziare
La compagnia per cui lavoro ha recentemente iniziato ad utilizzare i microcontrollori HCS12 per cui abbiamo acquistato la versione di CodeWarrior che lo supporta. Utilizzare un nuovo ambiente di programmazione potrebbe non essere così difficoltoso per i nostri sviluppatori software (probabilmente ne avranno visti decine), ma lo è stato per me (sono un ingegnere elettronico). Normalmente non dovrei scrivere del codice, ma a causa della varietà di persone nell’azienda (o le “risorse”, come dice il manager) ho dovuto scrivere piccoli pezzi di codice giusto per testare le varie sezione dell’hardware che stiamo progettando.

La prima volta che mi è stato detto di usare CodeWarrior mi sono detto che dovesse essere per Freescale così come MPLAB è per Microchip, o AVR Studio è per Atmel (sono molto più familiare con questi). E non ero lontano dalla verità (ovviamente gli sviluppatori software professionisti potrebbero avere qualcosa da ridire). Ho provato a strutturare l’esperienza iniziale con questo potente ambiente di sviluppo in pochi semplici passi da seguire.

Freescale CodeWarrior – Passo 1 – download ed installazione
CodeWarrior costa. Non è economico. Per fortuna, Freescale mette a disposizione gratuitamente versioni che consentono di costruire progetti con solo limitate dimensioni del codice. Queste versioni sono più che sufficienti per ottenere una panoramica su come si guarda e lavora. Per scaricare i pacchetti disponibili, invia una richiesta ad Arrow utilizzando il seguente modulo.

Poiché avevo bisogno di questa, ho scaricato la versione speciale per la famiglia dei microcontroller HCS12X e questa è ciò a cui mi riferirò in seguito. Una volta che l’ hai scaricata, la procedura di installazione è nello stile solito di Windows Avanti ->Avanti -> Fine -> Avvia applicazione.
In alternativa, Freescale consente anche il download della versione pienamente funzionale di CodeWarrior, ma solo per un periodo di valutazione di 30 giorni.

Freescale CodeWarrior – Passo 2 – Creare il progetto
Dopo aver lanciato CodeWarrior, dalla barra del menu in alto scegliere File->New, uscirà la finestra “New” che ti permette di iniziare il wizard. Seleziona l’ opzione Wizard ed inserisci un nome per il tuo progetto (in questo caso io ho scelto il nome “Tutorial”):

Continua con il wizart, scegli l’ MC9S12E128 come derivazione che vuoi compilare e C come linguaggio di funzionamento:

Il wizard ha poche pagine. Passarle tutte selezionando successivamente: no Processor Expert, no set up for PC-Lint, ANSI startup code, no supported floating point format, banked memory model. Nell’ ultima pagina, il wizard consente di selezionare un debugger/programmatore o un simulatore. Per ora, selezionare solo il simulatore, poi si potrà sempre passare ad un dispositivo fisico, una volta che il progetto è iniziato. Ecco come faccio a simulare il mio codice:

Freescale CodeWarrior – Passo 3 – Scrivere il codice
Dopo il corretto completamento dell’ultimo passo del wizard, CodeWarrior visualizzerà una Project Window agganciata sul lato sinistro dell’ambiente. Per ottenere i file in cui si scrive il codice, devi clickare sul piccolo segno “+” vicino alla  cartella “Sources”, che si riveleranno come i file esistenti nel vostro codice. Per ora, ce ne sono solo due, e per modificare il file main.c, fai un doppio clic su di esso.

Il codice generato automaticamente è ridotto al minimo e non dovrebbe essere troppo anche per un principiante:

#include /* common defines and macros */
#include /* derivative information */
void main(void) {
/* put your own code here */
EnableInterrupts;
for(;;) {} /* wait forever */
/* please make sure that you never leave this function */
}

Il codice necessario per scrivere l’inizio era piuttosto semplice. Il microcontroller sul nostro progetto ha avuto anche lo scopo (tra gli altri) di fornire l’alimentazione per una parte diversa del circuito commutando uno spinotto. Se fossi riuscito a fare questo, sarei riuscito a testare l’intero circuito senza l’aiuto del software ragazzi! Ci sono ovviamente, importanti “risorse” che non devono essere sprecate per tali compiti banali come aprire o chiudere uno spinotto.

Per attivare lo spinotto PB7 avete solo bisogno di scrivere due registri: PORTB e DDRB. Per fortuna, tutti i registri sono definiti nel file mc9s12e128.h che viene incluso all’inizio del codice, così non si deve nemmeno cercare il datasheet per il registro indirizzi. Il registro DDRB è il registro della direzione per gli spinotti PORTB. Quando la porta B è operativa come una porta I/O generica, DDRB determina la direzione principale per ogni spinotto della porta B. Logicamente 1 porta lo spinotto associato della porta ad essere un’uscita mentre 0 porta lo spinotto ad alta impedenza in ingresso. Il valore di un bit DDR colpisce anche la fonte dei dati per la lettura del corrispondente registro PORTB.


#include /* common defines and macros */
#include /* derivative information */
void main(void) {
/* put your own code here */
EnableInterrupts;
DDRB=0xFF;
PORTB=0x80;
for(;;) {} /* wait forever */
/* please make sure that you never leave this function */
}

Prima di caricarlo nel microcontroller, voglio essere sicuro che sia andato tutto bene e voglio testare il codice.

Freescale CodeWarrior – Passo 4 – Simulare il codice
Per simulare il codice sono necessari due passaggi: primo devi compilarlo (usando il compilatore, il linker ecc) e poi devi inizializzare la simulazione. Questo è semplice come fare due click. Per compilare il codice, premi solo F7. In alternativa puoi usare dal menu Project->Make. Non dovresti ottenere errori se il tuo codice è semplice come il mio.

Prima di inizializzare la simulazione potresti voler vedere tutte le impostazioni di simulazione che possono essere fatte. La finestra corrispondente è apribile con ALT+F7 o dal menu Edit->Full Chip simulation Settings. Solo vedendo le principali modifiche e impostazioni che puoi fare qui, puoi farti una idea generale di come il simulatore (e quindi l’ ambiente) potrebbe essere potente ed utile:

Per adesso, lascia le impostazioni come sono e chiudi la finestra. Per iniziare la simulazione, scegli dal menu Project->Debug, o in alternativa premi solo F5. Questo aprità una nuova finestra di CodeWarrior (che adesso è grande per un print screen) contenente tutte le sottofinestre necessarie per la simulazione (codice sorgente, finestra di disassemblaggio, mappa della memoria, impostazioni ddel chio ecc).

Una caratteristica efficace di CodeWarrior è la possibilità di una rappresentazione visuale degli stati degli spinotti, attraverso un componente chiamato IO_LED. Per attivare il componente, nella finestra di simulazione, sceglilo dal menu Component->Open. Questo mostrerà un ampio elenco di “componenti” da scegliere, il componente è in pratica un modo grafico di mostrare le informazioni. Da tutte le opzioni disponibili, scegliere “io_led”:

Questo attiverà una nuova sottofinestra mostrante 8 piccoli LED rotondi che puoi associare ai dati e alle direzioni degli indirizzi di registro:

Per eseguire l’associazione, si deve consultare il datasheet per trovare gli indirizzi di registro per PORTB e DDRB. Ci sono 0x0001 per PORTB e 0x0003 per DDRB e per associare questi indirizzi con il componente LED devi fare click destro sulla finestra dei piccoli LED e nel nuovo form di dialogo inserire questi due indirizzi:

Una volta che questo ultimo punto è finito, puoi considerarti capace di avviare una simulazione. Questo può essere eseguito facilmente dal pulsante verde “Start” disponibile nella toolbar superiore, o in alternativa premere di nuovo F5:

La simulazione è veloce, e una volta che le linee del codice per l’ impostazione dei valori per DDRB e PORTB sono raggiunte, vedrai i LED cambiare colore:

Suppongo che rosso significhi logica alta e verde logica bassa (è piuttosto il contrario di ciò che vorrei, ma naturalmente, questo è solo un dettaglio).

Freescale CodeWarrior – Punto 5 – Caricamento nel microcontroller

Da ora in poi dipende davvero dal programmatore che hai. Per caricare il codice compilato nel microcontroller reale, nella finestra di simulazione che è stata creata nel passo precedente seleziona Component->Set Connection. Questo aprirà una nuova finestra dove sarai capace di selezionare il programmatore che hai e di conseguenza caricare il codice nel microcontroller (nel mio caso, un SofTec HCS12).

Una volta completato i precedente 5 passi sei in grado di andare davanti da solo. CodeWarrior stesso non è difficile da usare, e l’elenco trasparente delle opzioni lo rende molto flessibile.
Più informazioni e download sono disponibili: CodeWarrior Development Tools

RICHIESTA DI CONTATTO
Se desideri maggiori informazioni su questo prodotto Freescale, invia una richiesta ad Arrow utilizzando il seguente modulo.

STAMPA     Tags:,

One Response

  1. Emanuele 21 luglio 2009

Leave a Reply