Aller au contenu

Objectifs de l’examen oral

Les objectifs ci-dessous ne sont pas exhaustifs. Le contenu des notes de cours, les exemples, les exercices et les travaux pratiques font partie intégrante des objectifs de l’examen oral.

Rappel

  • Arrivez 5 min. avant votre heure de préparation
  • L’examen se fait sans aucune aide : pas de résumé, de calculatrice, de portable, de smartphone, …
  • Vous disposez de 15 minutes de préparation sur des feuilles de papier et ensuite de 15 minutes de présentation au professeur et à l’expert.
  • Vous devez répondre à deux questions : une question d’ordre théorique et une question d’ordre plus pratique sous forme d’exercice.

Microcontrôleur et périphériques

  • Comprendre les caractéristiques principales des interfaces de communication (I2C, SPI, UART, CAN) et être capable de les comparer.
  • Comprendre les mécanismes d’interruption et de Timer sous STM32Cube. Être capable de réaliser des programmes simples impliquant ces mécanismes.
  • Être capable de programmer des mécanismes GPIO avec STM32Cube.

Modèles de programmation

  • Expliquer les principes essentiels et les besoins des systèmes temps-réel.
  • Expliquer les principes essentiels du problème de l’ordonnancement.
  • Être capable de résoudre un problème d’ordonnancement pour un problème spécifié (tâches spécifiées avec leurs caractéristiques), selon les mécanismes d’ordonnancement statique cyclique et de machines d’état.
  • Expliquer les mécanismes permettant la programmation multi-tâches sous FreeRTOS (ordonnancement, Thread, EventQueue, mécanismes de synchronisation et de partages de ressources).
  • Programmer une application simple impliquant plusieurs threads et permettant leur synchronisation.

La programmation multi-tâches avec FreeRTOS

  • Expliquer les mécanismes permettant la programmation multi-tâches sous FreeRTOS (ordonnancement, Thread, EventQueue, mécanismes de synchronisation et de partages de ressources).
  • Programmer une application simple impliquant plusieurs threads et permettant leur synchronisation.

Les systèmes de communication sans fil

  • Nommer les critères importants qui interviennent dans le choix d’une technologie sans fil et expliquer leur importance.
  • Nommer les technologies sans fil importantes pour l’Internet des Objets et les systèmes embarqués.
  • Expliquer les caractéristiques importantes de ces technologies et positionner ces caractéristiques sur des diagrammes.
  • Effectuer une analyse simple d’un cahier des charges élémentaire pour le choix d’une technologie sans fil et proposer un choix pour la technologie la plus appropriée en rapport à ce cahier des charges.

Protocoles de communication IP

  • Expliquer les critères principaux permettant de différencier les technologies de communication basées sur IP.
  • Expliquer les caractéristiques principales des protocoles IP présentés dans le cours et leur modèle de communication.

MQTT

  • Expliquer l’architecture d’un système MQTT et la manière dont les messages sont échangés.
  • Expliquer le concept des topics et l’appliquer à un cas simple.
  • Analyser l’entête fixe d’un paquet MQTT

Chaîne d’outils (Toolchain)

  • Expliquer les étapes de la chaîne d’outils pour la compilation d’un programme C/C++.
  • Expliquer les arguments principaux de la commande gcc pour la compilation d’un programme C/C++.
  • Comprendre le fonctionnement de l’outil make et être capable de l’utiliser pour effecgtuer une tâche simple.
  • Savoir expliquer le contenu d’un fichier Makefile simple.

Mémoire des systèmes embarqués

  • Connaitre l’utilisation des différents espaces mémoire d’un microcontrôleur en C/C++ (stack, heap, section .data, .bss, .text, ` etc.)
  • Reconnaître les risques liés à l’utilisation de la mémoire dynamique et proposer des solutions.

Les “autres” systèmes embarqués

  • Expliquer les caractéristiques principales des systèmes embarqués basés sur des microcontrôleurs et des microprocesseurs.
  • Savoir choisir un microcontrôleur pour une application donnée en fonction de ses caractéristiques.

Langage de développement C/C++

  • Manipuler correctement les types de base de C/C++.
  • Coder des déclarations et des réalisations de classes simples en C++, en mettant en œuvre des mécanismes simples d’héritage.
  • Être capable de définir et d’initialiser correctement les attributs d’une classe pour une spécification donnée.
  • Analyser un programme C++ pour décrire son comportement et corriger d’éventuelles erreurs/défauts.