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 
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.

 


Compétences préalables

 

  • 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 

 

Objectifs d'apprentissage

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 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.

 

Catégorie de module

Introduction aux systèmes et logiciels embarqués

  • Applications des systèmes embarqués
  • 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
  • Internet des objets (IoT) et systèmes embarqués
  • Systèmes embarqués et systèmes d'exploitation (OS)
  • Introduction au système d'exploitation Mbed OS

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
  • Ordonnancement piloté par les événements et interruptions
  • Ordonnancement dynamique RTC
  • Ordonnancement dynamique préemptif
  • Comparaison des algorithmes d'ordonnancement

Tâches et concurrence

  • Conception de logiciels embarqués en tâches multiples
  • Multitâches et système d'exploitation embarqué (Mbed OS)
  • Tâches et système d'exploitation en temps réel
  • Ordonnancement des tâches et threads avec Mbed OS
  • Mécanismes de synchronisation (événements, mutex, sémaphore, file d'attente, Mail)
  • 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 Mbed OS
  • Code, données et mémoire
  • 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 pour le développement d'une application  bootloader
  • Modèle de mémoire pour un bootloader

Tests

  • Niveaux de test
  • Test unitaire sur Mbed OS
  • Tests d'intégration sur Mbed OS
  • CI/CD pour les systèmes embarqués

 

Méthodes d'enseignement et d'apprentissage

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.

Bibliographie

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

Télécharger le descriptif complet

Retour