v2.11.0 (5932)

Enseignement scientifique & technique - ECE_5SE04_TP : Systèmes Embarqués et Objets Connectés -SE302b (partie 2)

Domaine > Electronique, Informatique.

Descriptif

Cette unité d'enseignement a pour objectif d'aborder des techniques récentes de développement des systèmes embarqués et des objets connectés. Nous y aborderons notamment :

  • L'utilisation de la programmation asynchrone et bas-niveau en Rust pour le développement de systèmes embarqués.
  • La programmation embarquée multi-cœurs et la gestion efficace de l'énergie.
  • La programmation d'enclaves sécurisées protégées matériellement permettant de garantir la confidentialité des secrets vis-à-vis du reste du code, même en cas de défaillance du système, qu'elle soit due à une erreur de programmation ou à la malveillance.

Les différents concepts étudiés seront mis en pratique au travers de mini-projets.

Objectifs pédagogiques

Acquis d'apprentissage
À l'issue de l'UE, l'élève sera capable de:

  • Développer des applications embarqués en Rust en utilisant des concepts avancés (asynchronisme, macros...)
  • Expliquer les problématiques de cohérence mémoire dans un système multicœur
  • D'utiliser les primitives appropriées (acquire/release, sequential consistency...) pour développer des applications multicœur
  • D'expliquer les objectifs de sécurité de la technologie Trustzone et ses limites

Compétences de rattachement (et justification)

  • BC8.3 – Concevoir et développer des solutions technologiques en s’appuyant sur un paradigme de programmation spécifique ou en concevant des architectures matérielles et logicielles spécifiques; Justification : Les élèves doivent, à l'aide des connaissances acquises dans cette UE, développer des applications logicielles embarquées en Rust.
  • BC8.4 – Déterminer les phases et procédures de tests techniques et fonctionnels des composants matériels et logiciels pour assurer la fiabilité, la sécurité et/ou la sûreté de fonctionnement des systèmes; Justification : Durant l'UE, un accent particulier est porté sur les phases de test (tests unitaires en particulier) lors des phases de développement.
  • BC7.1 – Identifier, analyser et caractériser les éléments de sécurité permettant d’atteindre un objectif cible (disponibilité, intégrité, authentification, confidentialité, traçabilité) en vue de gérer la sécurité des systèmes numériques; Justification : Les élèves étudient une technologie de sécurité (Trustzone) et identifient ses objectifs et ses limitations.

30 heures en présentiel (20 blocs ou créneaux)
réparties en:
  • Travaux Pratiques : 15
  • Contrôle de connaissance : 1.5
  • Leçon : 13.5

75 heures de travail personnel estimé pour l’étudiant.

Diplôme(s) concerné(s)

Pour les étudiants du diplôme Echange international non diplomant

  • Outils de développement sous Linux : éditeur, compilateur croisé (gcc), éditeur de liens (ld), gestion de version (git), outils de constructions (make), manipulation de binaires et fichiers ELF (binutils), debugger (gdb).
  • Programmation d’un micro-contrôleur : jeu d’instruction, registres, initialisation des horloges, périphériques internes, interface avec l’extérieur, chargement du micro-logiciel.
  • Programmation en Rust sur micro-contrôleur

Pour les étudiants du diplôme Programme de mobilité des établissements français partenaires

  • Outils de développement sous Linux : éditeur, compilateur croisé (gcc), éditeur de liens (ld), gestion de version (git), outils de constructions (make), manipulation de binaires et fichiers ELF (binutils), debugger (gdb).
  • Programmation d’un micro-contrôleur : jeu d’instruction, registres, initialisation des horloges, périphériques internes, interface avec l’extérieur, chargement du micro-logiciel.
  • Programmation en Rust sur micro-contrôleur

Pour les étudiants du diplôme Diplôme d'ingénieur

4SE02, 4SE03 et 4SE07, soit :

  • Outils de développement sous Linux : éditeur, compilateur croisé (gcc), éditeur de liens (ld), gestion de version (git), outils de constructions (make), manipulation de binaires et fichiers ELF (binutils), debugger (gdb).
  • Programmation d’un micro-contrôleur : jeu d’instruction, registres, initialisation des horloges, périphériques internes, interface avec l’extérieur, chargement du micro-logiciel.
  • Programmation en Rust sur micro-contrôleur

Format des notes

Numérique sur 20

Littérale/grade européen

Pour les étudiants du diplôme Diplôme d'ingénieur

Vos modalités d'acquisition :

L'évaluation de l'UE se base sur deux éléments :

  • les développements réalisés par les élèves durant les TP
  • un examen théorique

L'UE est acquise si Note finale >= 10
  • Crédits ECTS acquis : 3 ECTS
  • Crédit d'Option 3A acquis : 3

La note obtenue rentre dans le calcul de votre GPA.

Pour les étudiants du diplôme Echange international non diplomant

Vos modalités d'acquisition :

L'évaluation de l'UE se base sur deux éléments :

  • les développements réalisés par les élèves durant les TP
  • un examen théorique

L'UE est acquise si Note finale >= 10
  • Crédits ECTS acquis : 3 ECTS

La note obtenue rentre dans le calcul de votre GPA.

Pour les étudiants du diplôme Programme de mobilité des établissements français partenaires

Vos modalités d'acquisition :

L'évaluation de l'UE se base sur deux éléments :

  • les développements réalisés par les élèves durant les TP
  • un examen théorique

La note obtenue rentre dans le calcul de votre GPA.

Programme détaillé

  • Rust avancé : constructions idiomatiques, parallélisme, programmation asynchrone, macros, tests
  • Programmation multi-cœurs
  • Trustzone

Mots clés

rust embarqué, multicœur, trustzone

Méthodes pédagogiques

Un fort accent est mis sur les aspects pratiques (TP) durant lesquels les élèves développent des petites applications embarqués mettant en œuvre les concepts vus durant les cours.
Veuillez patienter