PROGRAMMABLE ELECTRONIC SYSTEMS
Academic year2023/24
CourseELECTRONIC ENGINEERING
Code192II
Credits6
PeriodSemester 1
LanguageItalian
Modules | Area | Type | Hours | Teacher(s) |
SISTEMI ELETTRONICI PROGRAMMABILI | ING-INF/01 | LEZIONI | 60 | |
Obiettivi di apprendimento
Conoscenze
- Introduzione. Breve storia dei processori. Architetture di Von Neumann e Harvard. Endianess e allineamento dei dati in memoria.
- Architettura del processore ATMEL AVR mega 32. Flag del processore. Modi di indirizzamento. Stack e chiamata di subroutine. Set di istruzioni. Formato delle istruzione AVR: codice operativo e specifica degli operandi. Interruzioni. Istruzione LPM. Uso in assembler. Assemblatore del processore Atmel AVR: tabella dei simboli, direttive.
- Periferiche del processore Atmel AVR mega32. Porte GPIO processore. Timers 0 e 1 del processore. Timer 2. Modalita PWM dei timers. Generazione del Clock. Modi sleep. Reset. Watchdog. RS-232 e USART. EEPROM del processore AVR. Istruzione SPM e Bootloader. Bootloader e istruzione SPM. SPI. TWI: livello fisico e segnalazione. Condizione di start e di stop. Bus TWI (I2C). Esempi di comunicazione. Repeated start. Implementazione su processore AVR.
- Introduzione alla programmazione di microcontrollori in C (bare-metal). Toolchain: compilatore, assembler, linker, post-linker. Mappa di memoria e sezioni, rilocazione data segment. Linker script, uso avanzato delle sezioni. Libreria AVR, allocazioni di costanti in flash-memory. Uso delle librerie. Interrupt in C. Simboli "strong" e "weak". Puntatori a funzione e array di puntatori a funzione in C. Jtag: testing e debug.
- Processore ARM. Storia, peculiarità, modi di indirizzamento, set di istruzioni ARM, thumb e thumb2. Interruzioni e fault. make e makefile.
Knowledge
Students are expected to acquire: Deep knowledge of the operation of a modern microcontroller, its typical peripherals. Knowledge of the theory of operation of well known communication interfaces: rs-232, i^2C, SPI. Ability to develop and debug Assembly and C firmware.
Modalità di verifica delle conoscenze
Esercitazioni a gruppi: gli studenti dovranno sviluppare dei piccoli progetti in C o in assembler e
testarli con una scheda di sviluppo. Verranno valutato l'impegno profuso e i risultati ottenuti.
Scrivere un programma in Assembler o C in 30 minuti.
Rispondere ad una domanda sel programma esposto.
Assessment criteria of knowledge
The student will have to demonstrate a) the ability to develop a short program in C or Assembly. b) The knowledge of the theory of operation of a subsystem of the processor.
Methods:
- Final oral exam
- Final written exam
- Final laboratory practical demonstration
- Laboratory
Further information:
Oral exam 60% Lab evaluation 40%
Capacità
Sviluppare firmaware in Assembler e C. Utilizzare il software AVR studio, gli assemblatori Atmel Assemgler e GAS, il compilatore GCC.
Skills
Develop and test firmware for microcontrollers.
Modalità di verifica delle capacità
Esercitazioni a gruppi: gli studenti dovranno sviluppare dei piccoli progetti in C o in assembler e
testarli con una scheda di sviluppo. Verranno valutato l'impegno profuso e i risultati ottenuti.
Assessment criteria of skills
Laboratory projects.
Comportamenti
Lo studente dovrà essere in grado di progettare, programmare e testare un programma (Firmware) in C o assembler.
Behaviors
Develop and test firmware for microcontrollers.
Modalità di verifica dei comportamenti
Esercitazioni a gruppi: gli studenti dovranno sviluppare dei piccoli progetti in C o in assembler e
testarli con una scheda di sviluppo. Verranno valutato l'impegno profuso e i risultati ottenuti.
Assessment criteria of behaviors
Laboratory projects.
Prerequisiti (conoscenze iniziali)
Argomenti di reti logiche. Cenni all'assembler dei processori AVR.
Prerequisites
Combinational and sequenzial logic circuits. Basic assembly language of AVR processors.
Indicazioni metodologiche
- lezioni frontali, talvolta con l'uso di un videoproiettore.
- Esercitazioni a gruppi, in un'aula dotata di PC desktop con software installato (è possibile usare un portatile personale)
- materilae forntito tramite il sito elearning del corso: free software, dispense, esempi di pragramma, datasheets.
- Il docente puo' essere contattato tramite la posta elettronica. È ovviamente disponibile per il ricevimento.
- Alla fine del corso viene oprganizzata una prova speciale (preappello).
Teaching methods
Delivery: face to face
Attendance: Mandatory
Learning activities:
- attending lectures
- individual study
- group work
- Laboratory work
Teaching methods:
Programma (contenuti dell'insegnamento)
- Introduzione. Breve storia dei processori. Architetture di Von Neumann e Harvard. Endianess e allineamento dei dati in memoria.
- Architettura del processore ATMEL AVR mega 32. Flag del processore. Modi di indirizzamento. Stack e chiamata di subroutine. Set di istruzioni. Formato delle istruzione AVR: codice operativo e specifica degli operandi. Interruzioni. Istruzione LPM. Uso in assembler. Assemblatore del processore Atmel AVR: tabella dei simboli, direttive. Esercitazioni: Esempio di sviluppo di programma assembler: divisione a 16 bit; inserimento e simulazione con AVR studio 4. Radice quadrata e crivello di Eratostene.
- Periferiche del processore Atmel AVR mega32. Porte GPIO processore. Timers 0 e 1 del processore. Timer 2. Modalita PWM dei timers. Generazione del Clock. Modi sleep. Reset. Watchdog. RS-232 e USART. EEPROM del processore AVR. Istruzione SPM e Bootloader. Bootloader e istruzione SPM. SPI. TWI: livello fisico e segnalazione. Condizione di start e di stop. Bus TWI (I2C). Esempi di comunicazione. Repeated start. Implementazione su processore AVR. Esercitazione: tastiera musicale.
- Introduzione alla programmazione di microcontrollori in C (bare-metal). Toolchain: compilatore, assembler, linker, post-linker. Mappa di memoria e sezioni, rilocazione data segment. Linker script, uso avanzato delle sezioni. Libreria AVR, allocazioni di costanti in flash-memory. Uso delle librerie. Interrupt in C. Simboli "strong" e "weak". Puntatori a funzione e array di puntatori a funzione in C. Esercitazione: Esempio di programma C in due files.riproduttore musicale. Discussione esercitazione riproduttore musicale.
- Jtag: testing e debug.
- Processore ARM. Storia, peculiarità, modi di indirizzamento, set di istruzioni ARM, thumb e thumb2. Interruzioni e fault. make e makefile. Esercitazioni: Dimostrazione programmazione scheda di sviluppo ARM (Texas Instruments - Stellaris launchpad) con tools open source: gcc/gas/ld, gdb e openocd. Analisi file di avviamento e linker script.
Syllabus
Atmel AVR 8-bit processor (ATmega32) structure: memory map, core, instruction set, main on-chip peripheral devices. C language development tools: compiler, linker, libraries for microcontrollers. Development of simple and intermediate programs with the AVR Studio IDE and the STK500 prototyping board. Introduction to ARM Cortex-M processors.
Bibliografia e materiale didattico
- Dispensa: Programmazione di microcontrollori in C ed Assembly con strumenti open source.
- Datasheet ATmega32
- Manuale assemblatiore ATMEL
- Set istruzioni AVR
- Manuale GAS
Bibliography
1) Atmel ATmega32 datasheet. 2) Atmel Instruction set manual. 3) Gnu linker manual. 4) AVR C library reference manual. 5) A wirlwind tour of ARM assembly. Example source code is provided during the lessons. (All material are freely available through internet)
Indicazioni per non frequentanti
Prova pratica: sviluppo e testing di firmware con scheda stk500. (sostituisce le esercitazioni)
Non-attending students info
The laboratory activity can be replaced with a special lab assignament to be performed in 4 hours.
Modalità d'esame
Esercitazioni con presenza obbligatorie e valutazione (37.5%)
Svolgimento esercizio programmazione (31.25%)
Orale (31.25%)
Assessment methods
Evaluation of laboratory assignements. (37.5%)
Fast (30 min) written test.
Oral test.
Note
Tutte le attivita pratiche saranno tenute solo se compatibili con le norme COVID.
Updated: 04/09/2023 17:09