Skip to main content
If you continue browsing this website, you agree to our policies:
  • Condizioni di utilizzo e trattamento dei dati
Continue
x
If you continue browsing this website, you agree to our policies:
  • Condizioni di utilizzo e trattamento dei dati
Continue
x
e-Learning - UNIMIB
  • Home
  • More
Listen to this page using ReadSpeaker
English ‎(en)‎
English ‎(en)‎ Italiano ‎(it)‎
 Log in
e-Learning - UNIMIB
Home
Percorso della pagina
  1. Science
  2. Bachelor Degree
  3. Informatica [E3102Q - E3101Q]
  4. Courses
  5. A.A. 2023-2024
  6. 3rd year
  1. Embedded Systems
  2. Summary
Insegnamento Course full name
Embedded Systems
Course ID number
2324-3-E3101Q124
Course summary SYLLABUS

Course Syllabus

  • Italiano ‎(it)‎
  • English ‎(en)‎
Export

Obiettivi

Comprensione delle principali aspetti dei sistemi embedded in tempo reale. Capacità di progettare semplici applicazioni embedded in tempo reale su micro-controllori in assembly e C, con e senza OS.

Contenuti sintetici

Sistemi embedded: caratteristiche e requisiti. La struttura dei sistemi embedded: micro-controllori, DSP, FPGA, memorie e loro organizzazione, sistemi di comunicazione. Periferiche, sensori ed attuatori. Teoria dello scheduling real-time. Architetture software e librerie per la programmazione real-time, fail-safe e safety-critical. Sistemi operativi real-time. Attività di laboratorio sulla programmazione di micro-controllori in assembly e C.

Programma esteso

  1. Sistemi embedded: caratteristiche e requisiti

    1. Caratteristiche generali e domini applicativi; valore del mercato e diffusione.
    2. Requisiti temporali, di affidabilità, di efficienza.
    3. Dimensioni progettuali.
  2. La struttura dei sistemi embedded

    1. Cenni di elettronica digitale e analogica.
    2. Livelli di scala: IC, PCB, network.
    3. Unità di elaborazione: CPU, micro-controllori, DSP, GPU, ASIC. Logiche programmabili: FPGA.
    4. Memorie: SRAM e DRAM, memorie non volatili; interazioni tra processore e memoria: architetture di Von Neumann e Harvard, gerarchie di memoria.
    5. Sistemi di comunicazione: GPIO, Pulse Width Modulation, RS-232, USB, I2C, SPI, CAN bus, JTAG.
    6. Sistemi ad elevata integrazione: SoC e NoC.
    7. Esempi di micro-controllori.
  3. Periferiche, sensori e attuatori

    1. Timer.
    2. DMA.
    3. Cenni di teoria del campionamento: Teorema di Nyquist, aliasing, rumore di quantizzazione; Comparatori e convertitori A/D e D/A.
    4. Modelli di sensori e attuatori: modelli affini, saturazione, distorsione armonica, range dinamico.
    5. Sensori: Accelerometri e giroscopi.
    6. Attuatori: Solenoidi lineari e motori DC.
  4. Teoria dello scheduling real-time

    1. Definizioni di base: task periodici, aperiodici e sporadici, utilizzazione, schedule validi e feasible, ottimalità.
    2. Schedule ciclico.
    3. Schedule a priorità statica: schedule rate-monotonic e deadline monotonic, analisi di schedulabilità.
    4. Schedule a priorità dinamica: schedule earliest-deadline-first e least-slack-time-first.
    5. Scheduling per job aperiodici e sporadici.
    6. Analisi blocking time.
    7. Sezioni critiche, anomalie di scheduling (inversione di priorità e deadlock), protocolli di priority inheritance e priority ceiling.
  5. Architetture software e librerie

    1. Architetture round-robin, round-robin con interrupts, function-queue-scheduling.
    2. (cenni) Librerie POSIX.4, Ada Real-Time e profilo Ravenscar, Real-Time e High-Integrity Java.
    3. (cenni) Sistemi operativi real-time.
  6. Laboratorio di programmazione di micro-controllori.

    1. Catena programmativa ed IDE.
    2. Programmazione assembly e sviluppo di semplici programmi.
    3. Programmazione C.
    4. Attività progettuale di gruppo.

Prerequisiti

  1. Conoscenze di architettura degli elaboratori e di cosa sia la programmazione assembly.
  2. Conoscenze di base di programmazione in C.
  3. Concetti base di sistemi operativi e programmazione concorrente.
  4. Principi di progettazione software con uso di UML.

Modalità didattica

  • lezioni interattive;
  • attività di laboratorio, con sviluppo di progetti in piccoli gruppi.

Materiale didattico

  • importanti

  • G. C. Buttazzo. Hard Real-Time Computing Systems, Predictable Scheduling Algorithms and Applications, 3rd Edition. Springer, 2011

  • meno importanti

  • J. W. S. Liu. Real-Time Systems. Prentice-Hall, 2000.

  • E. A. Lee, S.A. Seshia. Introduction to Embedded Systems: A Cyber-Physical Approach. Second Edition, MIT Press, 2017.

  • D. E. Simon. An Embedded Software Primer. Addison Wesley, 1999.

  • C. Brandolese, W. Fornaciari. Sistemi Embedded: Sviluppo Hardware e Software per Sistemi Dedicati. Pearson, 2007.

Periodo di erogazione dell'insegnamento

Secondo semestre

Modalità di verifica del profitto e valutazione

  • Prova scritta con esercizi e/o domande aperte sugli argomenti non coperti dalla attività di laboratorio;
  • relazione sulla attività di laboratorio;
  • eventuale colloquio orale sulla relazione sulla attività di laboratorio.

Orario di ricevimento

Inviare email per un appuntamento.

Sustainable Development Goals

IMPRESE, INNOVAZIONE E INFRASTRUTTURE
Export

Aims

Understanding of the major issues in real-time embedded systems. Ability to develop simple real-time embedded applications on micro-controllers in assembly and C, with and without OS.

Contents

Embedded systems: features and requirements. The structure of embedded systems: micro-controllers, DSP, FPGA, memories and their organization, communication systems. Peripherals, sensors and actuators. Real-time scheduling theory. Software architectures and libraries for real-time, fail-safe and safety-critical programming. Real-time operating systems. Laboratory activity with micro-controller programming in assembly and C.

Detailed program

  1. Embedded systems: features and requirements

    1. General features of embedded systems; application domains; market value and diffusion.
    2. Basic requirements: timing, reliability, efficiency.
    3. Design choices vs requirements.
  2. The structure of embedded systems

    1. Small recap of digital and analog electronics.
    2. Scale levels: IC, PCB, network.
    3. Processing units: CPU, microcontrollers, DSP, GPU, ASIC. Programmable logic: FPGA.
    4. Memories: SRAM and DRAM, non-volatile memories; interactions between processor and memory: Von Neumann and Harvard architectures, memory hierarchies.
    5. Communication systems: GPIO, Pulse Width Modulation, RS-232, USB, I2C, SPI, CAN bus, JTAG.
    6. Systems with a high degree of integration: SoC e NoC.
    7. Examples of micro-controllers.
  3. Peripherals, sensors and actuators

    1. Timers.
    2. DMA.
    3. Fundamentals of sampling theory: Nyquist theorem, aliasing, quantization noise; Comparators and A/D and D/A converters.
    4. Models of sensors and actuators: Affine models, saturation, harmonic distortion, dynamic range.
    5. Sensors: Accelerometers and gyroscopes.
    6. Actuators: Linear solenoids and DC motors.
  4. Real-time scheduling theory

    1. Basic definitions: periodic, aperiodic e sporadic tasks, utilization, valid and feasible schedules, optimality.
    2. Cyclic schedule.
    3. Static priority scheduling: rate-monotonic and deadline-monotonic schedule, schedulability analysis.
    4. Dynamic priority scheduling: earliest-deadline-first and least-slack-time-first schedule.
    5. Scheduling for aperiodic and sporadic jobs.
    6. Blocking time analysis.
    7. Critical sections, scheduling anomalies (priority inversion and deadlock), priority inheritance and priority ceiling protocols.
  5. Software architectures and libraries

    1. Main architectures: Round-robin, round-robin with interrupts, function-queue-scheduling.
    2. (hints) POSIX.4, Ada Real-Time and Ravenscar, Real-Time and High-Integrity Java.
    3. (hints) real-time operating systems.
  6. Laboratory activity on micro-controllers programming.

    1. Software development toolchain and IDE.
    2. Assembly programming and development of some basic programs.
    3. C programming.
    4. Team project development.

Prerequisites

  1. Basic knowledge of computer architecture and what is assembly programming.
  2. Basic skills in C programming.
  3. Basic knowledge of operating systems and concurrent programming.
  4. Software design principles with UML.

Teaching form

  • interactive classes;
  • laboratory practices, with development of projects in small groups.

Textbook and teaching resource

  • relevant

  • G. C. Buttazzo. Hard Real-Time Computing Systems, Predictable Scheduling Algorithms and Applications, 3rd Edition. Springer, 2011

  • less relevant

  • J. W. S. Liu. Real-Time Systems. Prentice-Hall, 2000.

  • E. A. Lee, S.A. Seshia. Introduction to Embedded Systems: A Cyber-Physical Approach. Second Edition, MIT Press, 2017.

  • D. E. Simon. An Embedded Software Primer. Addison Wesley, 1999.

  • C. Brandolese, W. Fornaciari. Sistemi Embedded: Sviluppo Hardware e Software per Sistemi Dedicati. Pearson, 2007.

Semester

Second semester

Assessment method

  • Written examination with exercises and/or open questions on topics not covered by the laboratory activities;
  • written report on the laboratory activities;
  • possible oral examination about the laboratory report.

Office hours

Send email for an appointment.

Sustainable Development Goals

INDUSTRY, INNOVATION AND INFRASTRUCTURE
Enter

Key information

Field of research
INF/01
ECTS
8
Term
Second semester
Activity type
Mandatory to be chosen
Course Length (Hours)
80
Degree Course Type
Degree Course
Language
Italian

Staff

    Teacher

  • Pietro Braione
    Pietro Braione
  • Domenico Giorgio Sorrenti
    Domenico Giorgio Sorrenti
  • Assistant

  • Jacopo Maltagliati
    Jacopo Maltagliati

Students' opinion

View previous A.Y. opinion

Bibliography

Find the books for this course in the Library

Enrolment methods

Manual enrolments
Self enrolment (Student)

Sustainable Development Goals

INDUSTRY, INNOVATION AND INFRASTRUCTURE - Build resilient infrastructure, promote inclusive and sustainable industrialization and foster innovation
INDUSTRY, INNOVATION AND INFRASTRUCTURE

You are not logged in. (Log in)
Policies
Get the mobile app
Powered by Moodle
© 2025 Università degli Studi di Milano-Bicocca
  • Privacy policy
  • Accessibility
  • Statistics