Scheda programma d'esame
PROGRAMMABLE ELECTRONIC SYSTEMS
STEFANO DI PASCOLI
Academic year2023/24
CourseELECTRONIC ENGINEERING
Code192II
Credits6
PeriodSemester 1
LanguageItalian

ModulesAreaTypeHoursTeacher(s)
SISTEMI ELETTRONICI PROGRAMMABILIING-INF/01LEZIONI60
STEFANO DI PASCOLI unimap
Obiettivi di apprendimento
Learning outcomes
Conoscenze
  1. Introduzione. Breve storia dei processori. Architetture di Von Neumann e Harvard. Endianess e allineamento dei dati in memoria.
  1. 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. 
  1. 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. 
  1. 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.
  1. 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:

  • Lectures
  • laboratory

 

Programma (contenuti dell'insegnamento)
  1. Introduzione. Breve storia dei processori. Architetture di Von Neumann e Harvard. Endianess e allineamento dei dati in memoria.
  1. 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.
  1. 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.
  1. 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.
  1. Jtag: testing e debug.
  1. 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