MSE Master of Science in Engineering

The Swiss engineering master's degree

Chaque module vaut 3 ECTS. Vous sélectionnez 10 modules/30 ECTS parmi les catégories suivantes:

  • 12-15 crédits ECTS en Modules technico-scientifiques (TSM)
    Les modules TSM vous transmettent une compétence technique spécifique à votre orientation et complètent les modules de spécialisation décentralisés.
  • 9-12 crédits ECTS en Bases théoriques élargies (FTP)
    Les modules FTP traitent de bases théoriques telles que les mathématiques élevées, la physique, la théorie de l’information, la chimie, etc., vous permettant d’étendre votre profondeur scientifique abstraite et de contribuer à créer le lien important entre l’abstraction et l’application dans le domaine de l’innovation.
  • 6-9 crédits ECTS en Modules contextuels (CM)
    Les modules CM vous transmettent des compétences supplémentaires dans des domaines tels que la gestion des technologies, la gestion d’entreprise, la communication, la gestion de projets, le droit des brevets et des contrats, etc.

Le descriptif de module (download pdf) contient le détail des langues pour chaque module selon les catégories suivantes:

  • leçons
  • documentation
  • examen 
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 flexibility with a software-based approach, with the right partition of the system into hardware and software components.
  • Provide extensibility of the system.
  • Provide easier error detection and debugging capabilities.
  • Provide portability with the use of an embedded operating system and allow the programmer to abstract the hardware details of each platform.

Compétences préalables

  • 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

Objectifs d'apprentissage

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:

  • Implement methods for analyzing the CPU and memory usage of the system.
  • Develop methods for automated testing including unit tests and integration tests, toward CI/CD of embedded systems.

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.

Catégorie de module

Introduction to Embedded Systems and Software
•    Applications for Embedded Systems
•    Attributes of Embedded Systems
•    Options for Building Embedded Systems
•    Microcontroller-based Embedded Systems
•    Internet Of Things (IoT) and Embedded Systems
•    Embedded Systems and Operating Systems (OS)
•    Introduction to Mbed OS
Scheduling for Embedded Systems
•    Programming models of Embedded Systems
•    Overview of Scheduling Algorithms
•    Static cyclic scheduling
•    Event-driven scheduling and Interrupts
•    Dynamic RTC Scheduling
•    Dynamic Preemptive Scheduling
•    Comparison of Scheduling Algorithms
Tasks and Concurrency
•    Design of Embedded Software into Multiple Tasks
•    Multitasking and Embedded OS (Mbed OS)
•    Tasks and Real-Time OS
•    Mbed OS Task Scheduling
•    Mbed OS Threads
•    Concurrency Mechanisms (Events, Mutex, Semaphore, Queue, Mail)
•    Priority Inversion and Resource Access Protocols
Memory of Embedded Systems
•    Principles of Memory Management
•    Cortex-M Program Image Structure
•    Mbed OS Memory Model
•    Code, Data and Memory
•    Memory Protection Unit of Cortex-M Processors
•    Deploying Updates to Embedded Systems
•    Bootloader Principles
•    Bootloader Requirements and Application
•    Memory Model for Bootloaders
•    Levels of Testing
•    Unit Testing on Mbed OS
•    Integrations Testing on Mbed OS
•    CI/CD for Embedded Systems

Méthodes d'enseignement et d'apprentissage

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.


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

Télécharger le descriptif complet