Scopo del corso è di fornire agli studenti competenze professionalizzanti, direttamente spendibili sul mercato del lavoro, nel campo della progettazione e programmazione di sistemi embedded per l’automazione.
Il corso è organizzato in cicli di lezioni inframezzati da esercitazioni attive in laboratorio informatico.
Richiami sui concetti di base delle architetture di calcolo (CPU, memoria, bus, periferiche), dei processi e relativa gestione mediante sistema operativo e degli strumenti di sviluppo del software (editor, compilatore, linker). Programmazione in C: struttura base di un programma, variabili e tipi di dato predefiniti, operatori, controllo di flusso, visibilità delle variabili, funzioni, gestione dell’I/O con l’utente, tipi di dato definiti dall’utente (array, union, struct), puntatori e gestione della memoria, uso di librerie esterne, concetti base su threads e programmazione concorrente. Principali caratteristiche dei sistemi embedded: differenti architetture (microcontrollori, DSPs, FPGAs, ASICs), strumenti di sviluppo dedicati. Programmazione di sistemi embedded: gestione delle periferiche: ADC, DAC, PWM, digital I/O, Counters, Timers. Comunicazione con altri dispositivi. Interrupt e programmazione ad eventi. Computazione a virgola fissa. Realizzazione di un sistema di controllo digitale.
- H. Deitel, P. Deitel. C. Corso completo di programmazione. Ed. Apogeo Education; 4 edizione 2013. (ISBN: 8838786291)
- Kernighan, Brian, and Dennis Ritchie. The C Programming Language. 2nd ed. Upper Saddle River, NJ: Prentice Hall, 1988. ISBN: 9780131103627.
- Q. Li, C. Yao, Real-Time Concepts for Embedded Systems, CMP Books, 2003. (ISBN:1578201241).
- D. E. Simon, An Embedded Software Primer, Addison-Wesley Professional, 1999. (ISBN:
020161569X)
Ricevimento: Su appuntamento
GABRIELE COSTA (Presidente)
ENRICO SIMETTI (Presidente)
Prima della prova di esame, gli studenti devono svolgere un'attività di progettuale. La prova di esame consiste nella sua discussione.
Propedeuticità :
Fondamenti di Informatica