MSE Master of Science in Engineering

The Swiss engineering master's degree


Ogni modulo equivale a 3 crediti ECTS. È possibile scegliere un totale di 10 moduli/30 ECTS nelle seguenti categorie: 

  • 12-15 crediti ECTS in moduli tecnico-scientifici (TSM)
    I moduli TSM trasmettono competenze tecniche specifiche del profilo e si integrano ai moduli di approfondimento decentralizzati.
  • 9-12 crediti ECTS in basi teoriche ampliate (FTP)
    I moduli FTP trattano principalmente basi teoriche come la matematica, la fisica, la teoria dell’informazione, la chimica ecc. I moduli ampliano la competenza scientifica dello studente e contribuiscono a creare un importante sinergia tra i concetti astratti e l’applicazione fondamentale per l’innovazione 
  • 6-9 crediti ECTS in moduli di contesto (CM)
    I moduli CM trasmettono competenze supplementari in settori quali gestione delle tecnologie, economia aziendale, comunicazione, gestione dei progetti, diritto dei brevetti, diritto contrattuale ecc.

La descrizione del modulo (scarica il pdf) riporta le informazioni linguistiche per ogni modulo, suddivise nelle seguenti categorie:

  • Insegnamento
  • Documentazione
  • Esame
Advanced Embedded Software (TSM_AdvEmbSof)

An embedded system is a specialized computer system with embedded hardware. There exists a wide variety of embedded systems, but in general such systems are processing systems capable of sensing physical inputs from their environment and of communicating the results. Usually embedded systems are designed to perform repeating tasks, either periodically or spontaneously, for low cost, low power, and optimal performance.
In this module, we investigate how microcontroller-based embedded systems can be developed, by emphasizing on the following advantages:

  • Provide software flexibility with a multi-tasking approach, for an efficient use of the system hardware components.
  • Provide extensibility of the system.
  • Provide easier error detection and debugging and testing capabilities.
  • Provide portability with the use of an embedded operating system and allow the programmer to abstract the hardware details of each platform.

Requisiti

  • Knowledge of the C programming langage and of an object-oriented language.
  • Good knowledge of computer and microprocessor architecture.
  • Basic understanding of operating system concepts (scheduling, process/thread).
  • Basic concurrent programming

Obiettivi di apprendimento

The students will learn the most important features of a modern RTOS by implementing their own scenario on an IoT development platform that offers a wide range of sensing, processing and communication capabilities. Starting from a basic super loop/bare metal implementation, the students will rapidly reach the limitations of this implementation. These limitations will be studied and improved solutions using scheduling, threading and synchronization will be put in place by the students for the development of a robust, portable and easily maintainable software. In addition, the students will also:

  • Put in place tools and methods for continuous checking of software quality.
  • Develop methods for automated testing including unit tests and integration tests, toward CI/CD of embedded systems.
  • Implement methods for analyzing the CPU and memory usage of the system.

 

At the end of the module, the students will be able to:

  • Develop a multi-tasking application on a microcontroller-based embedded system, using a RTOS
  • Use the debugging capabilities and build the test environment for an embedded application.
  • Understand the memory organization and usage of their application.
  • Develop a framework for updating embedded applications, including a bootloader application.

 

Contenuti del modulo

Introduction to Embedded Systems and Software (1/14)

  • Applications and attributes of Embedded Systems
  • Options for Building Embedded Systems
  • Microcontroller-based Embedded Systems
  • Embedded Systems and Operating Systems (OS)
  • Introduction to Mbed OS

Testing (2/14)

  • Levels of Testing
  • Unit and integration testing on Mbed OS
  • CI/CD for Embedded Systems

Software Quality (1/14)

  • Importance, tools and methods for continuous quality checking.
  • Programming guidelines through exercises.
  • Implementation using different tools.

Scheduling for Embedded Systems (3/14)

  • Programming models of Embedded Systems
  • Overview of Scheduling Algorithms
  • Introduction to static cyclic, event-driven, and dynamic preemptive scheduling, with comparisons

Tasks and Concurrency (2/14)

  • Design of Embedded Software into Multiple Tasks
  • Mbed OS: multitasking, threads, task scheduling, and concurrency mechanisms
  • Priority Inversion and Resource Access Protocols

Memory of Embedded Systems (2/14)

  • Principles of Memory Management
  • Cortex-M Program Image Structure
  • Mbed OS Memory Model
  • Memory Protection Unit of Cortex-M Processors

Bootloader (3/14)

  • Deploying Updates to Embedded Systems
  • Bootloader Principles
  • Bootloader Requirements and Memory Model for Bootloaders
  • Bootloader implementation under Mbed OS

Metodologie di insegnamento e apprendimento

This module uses lecture notes and practical exercises which are given in the form of codelabs. The students have to develop their own software based on a specification, with the help of lecture notes and codelabs material, and they must deliver their software as a project in several phases.

Bibliografia

References are given in the lecture notes and in the codelabs.

Scarica il descrittivo completo del modulo

Indietro