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
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 20Littérale/grade européenPour 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
- 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
- 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