Sei sulla pagina 1di 18

Sezione software

Microprocessori e Microcontrollori
Corso di progettazione su SoC ARM

1/18

Microcontrollori e Microprocessori
Corso di progettazione su SoC ARM Prof. N. Masarone Lab.: St. 132 (S2DEL Solid State and Diamond Electronics Lab.) e.mail: info@engsistemi.com

Sezione software

S2DEL Solid State and Diamond Electronics Lab.

ROMA

TRE

Universit degli Studi

Sezione software

Microprocessori e Microcontrollori
Corso di progettazione su SoC ARM

2/18

Il sistema di sviluppo

JTAG

PC host

Target

S2DEL Solid State and Diamond Electronics Lab.

ROMA

TRE

Universit degli Studi

Sezione software

Microprocessori e Microcontrollori
Corso di progettazione su SoC ARM

3/18

Integrated Development Environment (IDE)

editor

compilatore

builder

burner/debugger

sviluppo IDE

proprietario supporto della casa madre prestazioni ottimizzate curva di apprendimento breve ambiente opaco costo spesso elevato

open source supporto delle comunit di sviluppo prestazioni medie curva di apprendimento media ambiente trasparente costo spesso nullo

S2DEL Solid State and Diamond Electronics Lab.

ROMA

TRE

Universit degli Studi

Sezione software

Microprocessori e Microcontrollori
Corso di progettazione su SoC ARM

4/18

Eclipse una comunit open source i cui progetti mirano alla creazione di una piattaforma di sviluppo aperta, comprensiva di infrastrutture estensibili, strumenti ed applicazioni per la costruzione, il rilascio e la gestione del software nel suo intero ciclo di vita. Eclipse partita dal miglior IDE Java mai realizzato e da l si sviluppato. I leader industriali Borland, IBM, MERANT, QNX Software Systems, Rational Software, Red Hat, SuSE, TogetherSoft e Webgain formarono l'iniziale eclipse.org Board of Stewards nel novembre 2001. Entro la fine del 2003 questo consorzio iniziale giunse ad oltre 80 membri. Il 2 febbraio 2004 la Eclipse Board of Stewards annunci la trasformazione di Eclipse in una corporazione senza scopo di lucro. In origine Eclipse era un consorzio che si form quando IBM rilasci la piattaforma Eclipse come Open Source, poi divenne un organismo indipendente di guida all'evoluzione della piattaforma per aiutare sia gli sviluppatori che gli utilizzatori finali di software. Tutta la tecnologia ed il codice sorgente fornito e sviluppato da questa comunit in rapida crescita reso disponibile senza diritti di licenza con la Eclipse Public License (EPL). Tra i primi sviluppatori e consumatori strategici vi furono: Ericsson, HP, IBM, Intel, MontaVista Software, QNX, SAP e Serena Software.

S2DEL Solid State and Diamond Electronics Lab.

ROMA

TRE

Universit degli Studi

Sezione software

Microprocessori e Microcontrollori
Corso di progettazione su SoC ARM

5/18

Vista dell'ambiente di sviluppo Eclipse

S2DEL Solid State and Diamond Electronics Lab.

ROMA

TRE

Universit degli Studi

Sezione software

Microprocessori e Microcontrollori
Corso di progettazione su SoC ARM

6/18

Compilatore (GCC) e Debugger (GDB) GNU

http://www.fsf.org/

GNU: GNU's Not Unix


http://www.gnu.org/

GCC, the GNU Compiler Collection


http://gcc.gnu.org/

GDB: The GNU Project Debugger


http://www.gnu.org/software/gdb/gdb.html
ROMA

S2DEL Solid State and Diamond Electronics Lab.

TRE

Universit degli Studi

Sezione software

Microprocessori e Microcontrollori
Corso di progettazione su SoC ARM

7/18

Open On-Chip Debugger


Free and Open On-Chip Debugging, In-System Programming and Boundary-Scan Testing

Open On-Chip Debugger stato creato come parte di una Tesi scritta alla University of Applied Sciences Augsburg (FH Augsburg) da Dominic Rath nel 2005. La tesi completa si pu scaricare qui: http://openocd.berlios.de/thesis.pdf

S2DEL Solid State and Diamond Electronics Lab.

ROMA

TRE

Universit degli Studi

Sezione software

Microprocessori e Microcontrollori
Corso di progettazione su SoC ARM

8/18

Eclipse C/C++ Development Tooling - CDT Il progetto CDT (C/C++ Development Tools) fornisce un sistema di sviluppo integrato completo (Integrated Development Environment o IDE) per C e C++ su piattaforma Eclipse. Tra i partecipanti figurano:

http://www.eclipse.org/cdt/

S2DEL Solid State and Diamond Electronics Lab.

ROMA

TRE

Universit degli Studi

Sezione software

Microprocessori e Microcontrollori
Corso di progettazione su SoC ARM

9/18

Ciclo di vita di un progetto


Analisi dei requisiti: intervista al committente Studio di fattibilit: studio preventivo di una soluzione Progettazione: documento di specifica tecnica Sviluppo: realizzazione del sistema

Collaudo: test e misure sul campo

Rilascio: fornitura del prototipo al committente

Manutenzione: revisione del progetto


ROMA

S2DEL Solid State and Diamond Electronics Lab.

TRE

Universit degli Studi

Sezione software

Microprocessori e Microcontrollori
Corso di progettazione su SoC ARM

10/18

Modello di sviluppo ricorsivo

S2DEL Solid State and Diamond Electronics Lab.

ROMA

TRE

Universit degli Studi

Sezione software

Microprocessori e Microcontrollori
Corso di progettazione su SoC ARM

11/18

Modello di sviluppo a cascata

S2DEL Solid State and Diamond Electronics Lab.

ROMA

TRE

Universit degli Studi

Sezione software

Microprocessori e Microcontrollori
Corso di progettazione su SoC ARM

12/18

S2DEL Solid State and Diamond Electronics Lab.

ROMA

TRE

Universit degli Studi

Sezione software

Microprocessori e Microcontrollori
Corso di progettazione su SoC ARM

13/18

Progetto software
rtc.c RTC Scrittura delle librerie di base contenente le primitive dei dispositivi adottati. lcd.c LCD lcd.h rtc.h

dac.c DAC dac.h

i2c.c I2C i2c.h

S2DEL Solid State and Diamond Electronics Lab.

ROMA

TRE

Universit degli Studi

Sezione software

Microprocessori e Microcontrollori
Corso di progettazione su SoC ARM

14/18

Progetto software

controllo scelta della infrastruttura principale con l'identificazione dei processi che concorrono alla funzionalit. memorizzazione elaborazione acquisizione scenari d'uso interfaccia utente distribuzione

S2DEL Solid State and Diamond Electronics Lab.

ROMA

TRE

Universit degli Studi

Sezione software

Microprocessori e Microcontrollori
Corso di progettazione su SoC ARM

15/18

Progetto software
processi background interrupt service routine processo foreground

stratificazione del progetto software

codice principale

S2DEL Solid State and Diamond Electronics Lab.

ROMA

TRE

Universit degli Studi

Sezione software

Microprocessori e Microcontrollori
Corso di progettazione su SoC ARM

16/18

macchina a stati (processo foreground)

reset

waitEvent btn2Event standby btn1Event RTC set

waitEvent

btn1Event

setting menu waitEvent

btn1Event

S2DEL Solid State and Diamond Electronics Lab.

ROMA

TRE

Universit degli Studi

Sezione software

Microprocessori e Microcontrollori
Corso di progettazione su SoC ARM

17/18

ISR (processi background)


external interrupt (EINT0) isrEINT0() { .... .... event = btn1Event; .... .... external interrupt (EINT1)

isrEINT1() { .... .... event = btn2Event; .... ....

} }

S2DEL Solid State and Diamond Electronics Lab.

ROMA

TRE

Universit degli Studi

Sezione software

Microprocessori e Microcontrollori
Corso di progettazione su SoC ARM

18/18

state = standby; event = noEvent; while(1) { switch(state) { case standby: switch(event) { case noEvent: // display(hello); // event = waitEvent; break; case btn1Event: state = settingMenu; event = noEvent; break; } break; case settingMenu: switch(event) { case noEvent: // display(menu); // event = waitEvent; break; case btn1Event: // state = standby; event = noEvent; break; case btn2Event: // state = RTCset; event = noEvent; break; } break; default: state = standby; event = noEvent; } }

realizzazione di una macchina a stati in 'C'

first time within 'standby' show something

first time within 'standby' show something ISR set btn1Event

ISR set btn2Event

S2DEL Solid State and Diamond Electronics Lab.

ROMA

TRE

Universit degli Studi