MSE Master of Science in Engineering

The Swiss engineering master's degree


Each module contains 3 ECTS. You choose a total of 10 modules/30 ECTS in the following module categories: 

  • 12-15 ECTS in technical scientific modules (TSM)
    TSM modules teach profile-specific specialist skills and supplement the decentralised specialisation modules.
  • 9-12 ECTS in fundamental theoretical principles modules (FTP)
    FTP modules deal with theoretical fundamentals such as higher mathematics, physics, information theory, chemistry, etc. They will teach more detailed, abstract scientific knowledge and help you to bridge the gap between abstraction and application that is so important for innovation.
  • 6-9 ECTS in context modules (CM)
    CM modules will impart additional skills in areas such as technology management, business administration, communication, project management, patent law, contract law, etc.

In the module description (download pdf) you find the entire language information per module divided into the following categories:

  • instruction
  • documentation
  • examination 
Informatique embarquée avancée (TSM_AdvEmbSof)

Un système embarqué est un système informatique spécialisé avec du matériel embarqué. Il existe une grande variété de systèmes embarqués, mais en général, ces systèmes sont des systèmes capables de détecter les entrées physiques de leur environnement, d'effectuer certains calculs et de communiquer les résultats. Habituellement, les systèmes embarqués sont conçus pour exécuter des tâches répétitives, périodiquement ou spontanément, pour un faible coût, une faible consommation et des performances optimales.

Dans ce module, nous étudions comment les systèmes embarqués basés sur des microcontrôleurs peuvent être développés, en mettant l'accent sur les points suivants :

  • Fournir une approche logicielle flexible avec un système multi-tâches permettant une exploitation efficace des capacités matérielles du système.
  • Fournir une extensibilité du système.
  • Faciliter la détection des erreurs et les capacités de débogage et de tests.
  • Fournir une portabilité avec l'utilisation d'un système d'exploitation embarqué et permettre au programmeur d'abstraire les détails matériels de chaque plate-forme.

 

 

Prerequisites

  • Connaissance du langage de programmation C et d'un langage orienté objet.
  • Bonne connaissance de l'architecture des ordinateurs et des microprocesseurs.
  • Compréhension des concepts de base des systèmes d'exploitation (ordonnancement, processus/thread).
  • Connaissances de base en programmation concurrente 

 

Learning Objectives

Les étudiant-e-s apprendront les caractéristiques les plus importantes d'un système d'exploitation temps réel (RTOS) moderne en mettant en œuvre leur propre scénario sur une plateforme de développement IoT offrant un large éventail de capacités de détection, de traitement et de communication. En partant d'une implémentation basique de type super boucle, les étudiants découvriront rapidement les limites de cette réalisation. Ces limites seront étudiées et des solutions améliorées utilisant l'ordonnancement, le threading et la synchronisation seront mises en place par les étudiants pour le développement d'un logiciel robuste, portable et facilement maintenable. En outre, les étudiant-e-s devront également

 

  • Mettre en œuvre des outils et méthodes pour un contrôle de qualité continu.
  • Mettre en œuvre des méthodes d'analyse de l'utilisation du CPU et de la mémoire du système.
  • Développer des méthodes pour les tests automatisés, y compris des tests unitaires et des tests d'intégration, dans une perspective CI/CD pour les systèmes embarqués.

A la fin du module, les étudiant-e-s seront capables de :

  • Développer une application multi-tâches sur un système embarqué basé sur un microcontrôleur, en utilisant un RTOS.
  • Utiliser les capacités de débogage et construire l'environnement de test pour une application embarquée.
  • Comprendre l'organisation et l'utilisation de la mémoire de leur application.
  • Développer un cadre pour la mise à jour des applications embarquées, y compris une application de bootloader.

 

Contents of Module

Introduction aux systèmes et logiciels embarqués

  • Applications et attributs des systèmes embarqués
  • Options pour la construction de systèmes embarqués
  • Systèmes embarqués basés sur des microcontrôleurs
  • Systèmes embarqués et systèmes d'exploitation (OS)
  • Introduction à un système d'exploitation (RTOS) moderne 

Tests

  • Niveaux de test
  • Test unitaire et d'intégration à l'aide du RTOS
  • CI/CD pour les systèmes embarqués

Qualité du software

  • Importance, outils et méthodes pour un contrôle continu de la qualité.
  • Directives de programmation au travers d'exercices.
  • Mise en œuvre à l'aide de différents outils.

Ordonnancement pour les systèmes embarqués

  • Modèles de programmation des systèmes embarqués
  • Aperçu des algorithmes d'ordonnancement
  • Ordonnancement cyclique statique, piloté par événements et préemptif, avec comparaisons.

Tâches et concurrence

  • Conception de logiciels embarqués en tâches multiples
  • RTOS : multitâches, threads, ordonnancement et mécanismes de synchronisation
  • Inversion de priorité et protocoles d'accès aux ressources

Mémoire des systèmes embarqués

  • Principes de gestion de la mémoire
  • Structure de l'image du programme Cortex-M
  • Modèle de mémoire du système d'exploitation
  • Unité de protection de la mémoire des processeurs Cortex-M

Bootloader

  • Déploiement des mises à jour dans les systèmes embarqués
  • Principes du bootloader
  • Exigences et modèles de mémoire pour le développement d'une application  bootloader
  • Réalisation d'un bootloader à l'aide du RTOS

 

 

Teaching and Learning Methods

Ce module utilise des notes de cours et des exercices pratiques qui sont donnés sous la forme de codelabs. Les étudiant-e-s doivent développer leur propre logiciel sur la base d'une spécification, avec l'aide des notes de cours et du matériel des codelabs, et ils doivent rendre le logiciel développé dans le cadre d'un projet en deux phases.

Literature

Les références sont données dans les notes de cours et dans codelabs

Download full module description

Back