Nuovo Progetto in Eclipse

download Nuovo Progetto in Eclipse

of 19

description

Creazione di un nuovo progetto in Eclipse (ver. 3.2)Creazione di un nuovo progetto in Eclipse (ver. 3.2)Utilizzo di un'infrastruttura software di base per velocizzare la partenza con un nuovo progetto nell'ambiente di sviluppo Eclipse 3.2 con plug-in CDTCreazione di un nuovo progettoAvviare il programma Eclipse e attendere che l'ambiente di sviluppo mostri la situazione presente in Illustrazione 1.Illustrazione 1: Avvio di Eclipse Successivamente con il mouse selezionare File → New → Sta

Transcript of Nuovo Progetto in Eclipse

Creazione di un nuovo progetto in Eclipse (ver. 3.2)

Creazione di un nuovo progetto in Eclipse (ver. 3.2)Utilizzo di un'infrastruttura software di base per velocizzare la partenza con un nuovo progetto nell'ambiente di sviluppo Eclipse 3.2 con plug-in CDT

Creazione di un nuovo progettoAvviare il programma Eclipse e attendere che l'ambiente di sviluppo mostri la situazione presente in Illustrazione 1.

Illustrazione 1: Avvio di Eclipse Successivamente con il mouse selezionare File New Standard Make C Project. All'apertura delle finestra New Project, digitare nella casella Project name il nome del nuovo progetto, per esempio Prova, quindi verificare che sia attiva la selezione Use default location che definisce il percorso del nuovo progetto creando una nuova cartella avente il nome del progetto (nel nostro esempio Prova) dentro la cartella workspace predefinita. Per terminare la procedura di creazione del nuovo progetto premere il tasto Finish (Illustrazione 2 ).

www.engsistemi.com

[email protected]

Creazione di un nuovo progetto in Eclipse (ver. 3.2)

Illustrazione 2: Inserimento nome progetto Poich il progetto appena creato solo un contenitore vuoto conviene, al fine di velocizzare le operazioni di avvio di scrittura del codice, importare del codice di base da un progetto standard da noi preparato precedentemente. Nel nostro esempio ipotizziamo di avere a disposizione nella cartella workspace un progetto di base intitolato init_prj; vediamo quindi i passi necessari per importare i file da questo progetto.

Importazione file da un progetto di baseCon il mouse sul nome del progetto Prova premiamo il tasto destro e scegliamo il comando Import...; successivamente nella finestra Select scegliamo l'opzione File System, quindi premiamo il tasto Next (vedi Illustrazione 3).

Illustrazione 3: Importazione da File System

www.engsistemi.com

[email protected]

Creazione di un nuovo progetto in Eclipse (ver. 3.2)

Con il tasto Browse... nella finestra Import (vedi Illustrazione 4) identifichiamo il percorso della cartella nel workspace contenente il progetto di base da cui importare i file necessari (nel nostro esempio init_prj).

Illustrazione 4: Percorso d'importazione dei file Una volta impostato il percorso desiderato il programma visualizza un messaggio per avvisarci che nessun risorsa risulta ancora selezionata per l'importazione (vedi Illustrazione 5).

Illustrazione 5: Avviso di selezione risorse Tale messaggio del tutto normale e serve a ricordarci di procedere alla scelta dei file nel progetto di base init_prj.

www.engsistemi.com

[email protected]

Creazione di un nuovo progetto in Eclipse (ver. 3.2)

Selezioniamo il segno di spunta accanto al nome del progetto init_prj nella finestra di sinistra e premiamo il tasto Finish (vedi Illustrazione 6).

Illustrazione 6: Selezione dei contenuti A questo punto il progetto Prova presenta i contenuti importati dal progetto init_prj, come mostrato in Illustrazione 7.

Illustrazione 7: Contenuti del progetto Prova Notiamo che nel progetto non appare il file main.c, poich non era stato previsto nel progetto importato init_prj ( ma nulla vieta di predisporre un progetto di base contenente anche un file www.engsistemi.com [email protected]

Creazione di un nuovo progetto in Eclipse (ver. 3.2)

main.c e tanti altri). Comunque nel nostro esempio necessario aggiungere il file main.c seguendo i passi che adesso vedremo.

Inserimento e scrittura del file main.cCon il mouse selezionare File New Source File. Digitare il nome del file nella casella Source File e premere il tasto Finish (Illustrazione 8).

Illustrazione 8: Creazione del file main.c L'ambiente di sviluppo presenta adesso l'aspetto di Illustrazione 9, con il file main.c vuoto.

www.engsistemi.com

[email protected]

Creazione di un nuovo progetto in Eclipse (ver. 3.2)

Illustrazione 9: Presentazione di main.c Digitiamo nella finestra centrale il codice minimo per un programma in C destinato ad un microcontrollore. Poich un programma per microcontrollore non ha una conclusione, tipicamente si prevede un ciclo while infinito entro il quale contenere tutta l'esecuzione del codice desiderato (vedi Illustrazione 10). Nel nostro esempio utilizziamo anche una variabile di tipo intero che viene incrementata ad ogni ciclo fino ad un valore predefinito e poi azzerata.

www.engsistemi.com

[email protected]

Creazione di un nuovo progetto in Eclipse (ver. 3.2)

Illustrazione 10: Programma minimo Includiamo anche un file (nel nostro esempio lpc2103.h) contenente tutte le definizioni e gli indirizzi del microcontrollore da noi scelto per lo sviluppo del progetto.

www.engsistemi.com

[email protected]

Creazione di un nuovo progetto in Eclipse (ver. 3.2)

Build del progettoA questo punto possiamo compilare il progetto seguendo i seguenti passi: con il mouse selezionare Project e verificare che ci sia il segno di spunta accanto alla selezione Build automatically; nel caso non ci sia selezionarla, altrimenti selezionare il comando Clean.

Illustrazione 11: Clean del progetto

Impostazione della fase di cleanNel secondo caso appare la finestra di Clean; verificare che sia selezionata l'opzione Clean Projects Selected Below e che ci sia il segno di spunta accanto a Prova (vedi Illustrazione 11), quindi premere il tasto OK. In entrambi i casi il builder parte e, se non ci sono errori, esegue la compilazione ed il link completo dell'applicazione, giungendo alla preparazione del codice binario da riversare, in seguito, all'interno della memoria flash del microcontrollore. Per verificare se ci sono errori controllare nella finestra Console e Problems, presenti in basso nell'ambiente di sviluppo. Nell'esempio seguente manca il simbolo ; al termine dell'istruzione return (vedi Illustrazione 12).

www.engsistemi.com

[email protected]

Creazione di un nuovo progetto in Eclipse (ver. 3.2)

Illustrazione 12: Esempio di errore sintattico

Verifica e correzione degli erroriL'errore viene descritto in Problems (error: expected ';' before '}' token) e localizzato con un simbolo grafico (x rossa) nella finestra di editor, alla riga 14 del file main.c. Dopo aver corretto l'errore (ricordarsi di salvare il file, poich Eclipse non lo fa in automatico !) otteniamo un build senza messaggi di errore; inoltre nella finestra Console possiamo verificare la quantit di memoria occupata in Flash e in RAM. Nell'esempio in corso otteniamo un valore di 1756 byte di codice in Flash e 8 byte di codice in RAM (vedi Illustrazione 13). Da notare che oltre all'indicazione della dimensione del codice compilato l'ambiente di sviluppo presenta nella finestra di sinistra i file object (con suffisso .o) e i file assembler (con suffisso .lst). In questi file, in particolare, possiamo osservare come il compilatore GCC e l'assembler GAS hanno lavorato per traformare il codice C in istruzioni ARM.

www.engsistemi.com

[email protected]

Creazione di un nuovo progetto in Eclipse (ver. 3.2)

Illustrazione 13: Compilazione corretta

www.engsistemi.com

[email protected]

Creazione di un nuovo progetto in Eclipse (ver. 3.2)

Collegamento JTAG e upload del progettoCon il mouse selezionare il comando Debug, presente in alto a destra nell'ambiente di sviluppo. Questo permette di cambiare prospettiva, passando dalla vista C/C++ (utile in fase di scrittura e compilazione del codice) a quella di debug, in cui si realizza il collegamento fisico al target e l'upload del codice in memoria flash.

Configurazione del tool esterno JtagKeyTiny_openOCDNella vista Debug occorre, solo alla prima esecuzione, impostare il tool esterno JtagKeyTiny_openOCD; per fare ci selezionare con il mouse Run External Tools External Tools...; selezionare a sinistra Program e premere il bottone New Launch Configuration. Digitare nel campo nome la stringa JtagKeyTiny_openOCD e nel campo Location il percorso completo del programma openocd-ftd2xx.exe. In seguito digitare il percorso completo della directory di lavoro nel campo Working Directory e gli argomenti -f eng1.cfg nel campo Arguments (vedi Illustrazione 14).

Illustrazione 14: JtagKeyTiny_openOCD Nota bene: il file eng1.cfg, contenente le impostazioni di lavoro del tool di collegamento alla porta JTAG, va posto nella cartella precedentemente indicata nel campo Working Directory (nell'esempio appena visto nella cartella C:\Programmi\openocd-2006re115\bin\). www.engsistemi.com [email protected]

Creazione di un nuovo progetto in Eclipse (ver. 3.2)

Configurazione del debugScegliere con il mouse: Run Debug...; nella finestra Debug, selezionare a sinistra Embedded debug (Native). In seguito premere il bottone New Launch Configuration.

Illustrazione 15: Nuova configurazione di debug Notiamo che automaticamente il progetto Prova appare nella lista Embededd debug (Native) (vedi Illustrazione 15). Nella parte destra della finestra la tab Main presenta gi il nome del progetto (nel nostro esempio Prova) ma appare vuota la casella C/C++ Application. Per ovviare a ci premere il tasto Search Project, facendo apparire la finestra Program Selection: selezioniamo main.elf, quindi premiamo il tasto OK (vedi Illustrazione 16).

www.engsistemi.com

[email protected]

Creazione di un nuovo progetto in Eclipse (ver. 3.2)

Illustrazione 16: Selezione Verificato che adesso il campo C/C++ Application contiene il valore main.elf (vedi Illustrazione 17) passiamo alla tab Debugger.

Illustrazione 17: Completamento della tab Main In questa tab verifichiamo che il campo GDB debugger contenga il percorso completo del programma arm-elf-gdb.exe, come mostrato in Illustrazione 18; in caso contrario utilizzare il tasto Browse... per la ricerca e la selezione dell'applicazione.

www.engsistemi.com

[email protected]

Creazione di un nuovo progetto in Eclipse (ver. 3.2)

Illustrazione 18: Tab Debugger In seguito passiamo alla tab Commands, per l'inserimento di righe di comando utili all'impostazione dell'interfaccia JTAG, utilizzando le regole di protocollo previste dallo standard Open On-Chip Debugger. Digitiamo nel campo 'Initialize' commands le seguenti righe d'impostazione (vedi Illustrazione 19):target remote localhost:3333 monitor flash erase 0 0 7 monitor flash write 0 c:/workspace/prova/main.bin 0 monitor soft_reset_halt

e nel campo 'Run' commands la seguente riga:monitor arm7_9 force_hw_bkpts enable

Per salvare le impostazioni appena introdotte, premere prima il tasto Apply e poi il tasto Close.

www.engsistemi.com

[email protected]

Creazione di un nuovo progetto in Eclipse (ver. 3.2)

Illustrazione 19: Impostazione comandi JTAG

Collegamento fisico del target ed avvio del debugA questo punto alimentiamo il target e successivamente colleghiamo il JTAgKeyTiny alla porta USB del PC; nel caso in cui il dispositivo JTAG risulti periferica sconosciuta al PC, seguire la normale procedura d'installazione fornendo il percorso dei driver presenti nella cartella C:\Programmi\openocd-2006re115\driver\jtagkey_utils_060307; con il mouse selezioniamo Run External Tools JtagKeyTiny_openOCD. Verificare che il dispositivo JTAG si sia collegato correttamente al PC (tramite il protocollo Open On-Chip Debugger) analizzando il contenuto della finestra inferiore Console; questa deve contenere la dicitura:Info: openocd.c:82 main(): Open On-Chip Debugger (2006-10-12 18:00 CEST)

Nel caso in cui appaia un messaggio diverso, ripetere la procedura di collegamento vista precedentemente fino a raggiungere il risultato mostrato in Illustrazione 20.

www.engsistemi.com

[email protected]

Creazione di un nuovo progetto in Eclipse (ver. 3.2)

Illustrazione 20: Collegamento corretto di Open On-Chip Debugger Successivamente, selezionando Run Debug..., lanciare la configurazione debugger preparata precedentemente, evidenziando nella parte sinistra della finestra di Debug il progetto Prova, premendo poi il tasto Debug in basso a destra (vedi Illustrazione 21).

Illustrazione 21: Lancio del debug Prova A questo punto il debugger esegue una serie di operazioni in automatico, impostate nei comandi assegnati alla configurazione corrente del JTAG (vedi Illustrazione 19). In particolare: si collega al target, cancella la memoria flash del dispositivo, scrive il file www.engsistemi.com [email protected]

Creazione di un nuovo progetto in Eclipse (ver. 3.2)

binario del progetto (main.bin) nella memoria flash, esegue un reset software del dispositivo con arresto del programma e abilita i breakpoints hardware. Tutte queste operazioni sono velocemente mostrate nella finestra Console posta in basso. Al termine della sequenza di comandi l'ambiente di sviluppo si presenta come raffigurato in Illustrazione 22.

Illustrazione 22: Pronti al debug ! Da questo istante in poi l'ambiente di sviluppo pronto per eseguire il debug dell'applicazione.

Nota alle scelte di configurazione del debugLa configurazione scelta prevede nei comandi (vedi Illustrazione 19) la cancellazione e la scrittura del codice nella memoria flash del dispositivo ad ogni collegamento, prima di entrare nella fase di debug raffigurata in Illustrazione 22. Per evitare di consumare inutilmente cicli di vita della memoria flash (sono comunque garantiti almeno 100.000 cicli di cancellazione/scrittura) possibile creare una seconda configurazione di debug per il progetto Prova, seguendo gli stessi passi vista prima con la sola modifica dei comandi passati al JTAG. Possiamo chiamare la seconda configurazione Prova_no_flash, per evidenziare che non modifichiamo la memoria codice, lasciando le altre righe di comando relative alla connessione al target, reset software del dispositivo, arresto del programma e abilitazione dei breakpoints hardware. Digitiamo nel campo 'Initialize' commands le seguenti righe d'impostazione (vedi Illustrazione 23): www.engsistemi.com [email protected]

Creazione di un nuovo progetto in Eclipse (ver. 3.2)

target remote localhost:3333 monitor soft_reset_halt

e nel campo 'Run' commands la seguente riga:monitor arm7_9 force_hw_bkpts enable

Illustrazione 23: Debug senza cancellazione e scrittura della flash

www.engsistemi.com

[email protected]

Creazione di un nuovo progetto in Eclipse (ver. 3.2)

Indice generaleCreazione di un nuovo progetto...........................................................................................................1 Importazione file da un progetto di base.........................................................................................2 Inserimento e scrittura del file main.c.............................................................................................5 Build del progetto.................................................................................................................................8 Impostazione della fase di clean......................................................................................................8 Verifica e correzione degli errori.....................................................................................................9 Collegamento JTAG e upload del progetto.........................................................................................11 Configurazione del tool esterno JtagKeyTiny_openOCD.............................................................11 Configurazione del debug .............................................................................................................12 Collegamento fisico del target ed avvio del debug........................................................................15 Nota alle scelte di configurazione del debug.................................................................................17

Questa opera by Nicola Masarone Gabriele Di Nucci is licensed under a Creative Commons Attribuzione-Non commerciale-Non opere derivate 2.5 Italia License.

www.engsistemi.com

[email protected]