Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
2)
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
info@engsistemi.com
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.
www.engsistemi.com
info@engsistemi.com
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
info@engsistemi.com
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 info@engsistemi.com
main.c e tanti altri). Comunque nel nostro esempio necessario aggiungere il file main.c seguendo i passi che adesso vedremo.
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
info@engsistemi.com
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
info@engsistemi.com
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
info@engsistemi.com
www.engsistemi.com
info@engsistemi.com
www.engsistemi.com
info@engsistemi.com
www.engsistemi.com
info@engsistemi.com
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 info@engsistemi.com
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
info@engsistemi.com
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
info@engsistemi.com
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
Per salvare le impostazioni appena introdotte, premere prima il tasto Apply e poi il tasto Close.
www.engsistemi.com
info@engsistemi.com
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
info@engsistemi.com
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 info@engsistemi.com
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.
www.engsistemi.com
info@engsistemi.com
Indice generale
Creazione 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
info@engsistemi.com