logo-polimi
Loading...
Risorse bibliografiche
Risorsa bibliografica obbligatoria
Risorsa bibliografica facoltativa
Scheda Riassuntiva
Anno Accademico 2018/2019
Scuola Scuola di Ingegneria Industriale e dell'Informazione
Insegnamento 095907 - EMBEDDED SYSTEMS
  • 095904 - ADVANCED OPERATING SYSTEMS
Docente Fornaciari William
Cfu 5.00 Tipo insegnamento Modulo Di Corso Strutturato

Corso di Studi Codice Piano di Studio preventivamente approvato Da (compreso) A (escluso) Insegnamento
Ing - Civ (Mag.)(ord. 270) - MI (495) GEOINFORMATICS ENGINEERING - INGEGNERIA GEOINFORMATICA*AZZZZ095907 - EMBEDDED SYSTEMS
095903 - ADVANCED OPERATING SYSTEMS
Ing Ind - Inf (Mag.)(ord. 270) - CR (263) MUSIC AND ACOUSTIC ENGINEERING*AZZZZ095903 - ADVANCED OPERATING SYSTEMS
Ing Ind - Inf (Mag.)(ord. 270) - MI (476) ELECTRONICS ENGINEERING - INGEGNERIA ELETTRONICA*AZZZZ095907 - EMBEDDED SYSTEMS
Ing Ind - Inf (Mag.)(ord. 270) - MI (481) COMPUTER SCIENCE AND ENGINEERING - INGEGNERIA INFORMATICA*AZZZZ095903 - ADVANCED OPERATING SYSTEMS
095907 - EMBEDDED SYSTEMS

Obiettivi dell'insegnamento

The goal of the course is to provide the necessary knowledge on design methodologies and tools necessary to develop system and application software for embedded applications.

Despite the presence of embedded systems is almost “invisible” with respect to general purpose computing systems like PCs, they account for around two-thirds of the microprocessors market. Example of such systems are bio-medical devices, automotive electronics, industrial control systems, set-top-boxes and, in general, most of the consumer electronics.

The main topics presented during the course cover: review of documentation and architectures of the SoC for embedded applications, the use of development tool-chains for writing and verifying the embedded software, the development of device drivers, interfacing with external sensors and peripherals and the management of the cores and concurrency as exposed by the operating systems for embedded applications.

During the course some hands-on sessions will be proposed (participation is on a voluntary base) to show how to put in practice the topics covered during the course. The goal is to make the students familiar with STM/ARM development boards provided by the lectures for the realization of small projects. Given their widespread availability, Linux and Android will be the reference for most of the examples.

Note that the course Advanced Operating Systems (AOS) can be followed without the requirement to include also the course Embedded Systems 1. In fact the focus of AOS is on the development of the system and application software, including real-time aspects, while the other course is tailored to present the architectures, design methodologies and toolchains to manage the development of embedded applications.

During the course some meeting with representatives from the industry will be scheduled to propose stages and master thesis.

 


Risultati di apprendimento attesi

At the end of the course the students will be capable to design embedded applications, especially from the software standpoint.

This include the use of real-time operating systems and the typical approaches to the interface sensors and actuators and the use of commercial boards

During the couse it will be also augmented the set of general competencies required to the design of embedded applications, such as architectural, industrial design flow and power/energy optimization.

A significant expertise in the development of embedded systems and application programmin,g will be acquired by the students selecting a project work among those proposed during the course.


Argomenti trattati

Introduction and background

General characteristics and roadmaps of the embedded systems

Peculiarities of the applications and system software for embedded systems

Mastering MCU data sheets: programmer's model (ex. ARM, STM32)

Example of main showstoppers: energy of software, system-level power management, memory footprint, reactivity

Management of competition and concurrency

Scheduling of CPU for mono and multi-many core architectures

Frameworks for the run-time management of resources

Access to shared resources: management of deadlock and starvation, primitives for IPC in systems with processes and threads.

Software development for dedicated applications

Main abstractions: assembler, source, libraries, system software, firmware, middleware

Real-time operating systems: general characteristics, limits of traditional schedulers, configuration, user control

CPU startup: Exception vector and Interrupts, C runtime initialization, role of boot loader and kernel initialization (ex. with ARM and STM32)

Interfacing external devices (e.g. UART, Bluetooth), management of interrupts and GPIOs

Software development and management of code (e.g. GIT, GCC, Shell)

Tools for analysis/profiling of embedded code (e.g. STM Studio, Keil)

Examples based on Linux and/or Android

Device drivers

Introduction, sources organization and tools, Loadable modules

Memory management, I/O memory and ports, Char devices and File operations

Concurrency, Advanced Char Drivers and Time management

Processes and scheduling, Sleeping and Interrupt management

Interfacing external sensors

Type and characteristics of commercial sensors

Use of standard protocols (SPI, I2C) with a MCU and interface to the analog world

Examples of interfacing photodiodes using ADC, 3-axes accelerometer via SPI

Management of time and timers

Examples

Example of real implementations under Linux and possibly other operating systems (e.g. FreeRTOS, BeRTOS, ...)

In depth analysis of MIOSIX, a lightweight open source operating systems

Some hands (optional) under the supervision of the assistants are foreseen to familiarize the student with the development of application by exploiting real development platforms.


Prerequisiti

Basic courses (Bachelor level) in the fields of computer architectures, operating systems and high-level programming


Modalità di valutazione

The exams will follows the official rules of the Politecnico di Milano and more information can be found on the web site of the lecturer. During the course it will be presented a set of possible topics for projects, whose evaluation will be part of the final score.


Bibliografia

Software utilizzato
Nessun software richiesto

Forme didattiche
Tipo Forma Didattica Ore di attività svolte in aula
(hh:mm)
Ore di studio autonome
(hh:mm)
Lezione
30:00
45:00
Esercitazione
20:00
30:00
Laboratorio Informatico
0:00
0:00
Laboratorio Sperimentale
0:00
0:00
Laboratorio Di Progetto
0:00
0:00
Totale 50:00 75:00

Informazioni in lingua inglese a supporto dell'internazionalizzazione
Insegnamento erogato in lingua Inglese
Disponibilità di materiale didattico/slides in lingua inglese
Disponibilità di libri di testo/bibliografia in lingua inglese
Possibilità di sostenere l'esame in lingua inglese
Disponibilità di supporto didattico in lingua inglese
schedaincarico v. 1.8.3 / 1.8.3
Area Servizi ICT
04/12/2023