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 séances en laboratoire et de micro-projets. Des articles et présentations en groupe permettront d’approfondir certains aspects du cours.
Objectifs pédagogiques
Objectifs d'apprentissage : à l’issue de ce cours, les étudiants seront capables d'utiliser le langage Rust et ses concepts plus avancés comme la programmation asynchrone pour développer des systèmes embarqués. Ils sauront tirer partie des systèmes multi-cœurs pour minimiser la consommation énergétique. Ils pourront développer des systèmes utilisant une enclave sécurisée pour protéger des secrets.
30 heures en présentiel (20 blocs ou créneaux)
réparties en:
- Contrôle de connaissance : 1.5
- Leçon : 28.5
Diplôme(s) concerné(s)
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
SE202 et SE203, 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
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
Format des notes
Numérique sur 20Littérale/grade européenPour les étudiants du diplôme Programme de mobilité des établissements français partenaires
Vos modalités d'acquisition :
- Travaux pratiques et micro-projet (12/20)
- Contrôle de connaissances écrit (8/20)
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 :
- Travaux pratiques et micro-projet (12/20)
- Contrôle de connaissances écrit (8/20)
- Crédits ECTS acquis : 3 ECTS
La note obtenue rentre dans le calcul de votre GPA.
Pour les étudiants du diplôme Diplôme d'ingénieur
Vos modalités d'acquisition :
- Travaux pratiques et micro-projet (12/20)
- Contrôle de connaissances écrit (8/20)
- Crédits ECTS acquis : 3 ECTS
- Crédit d'Option 3A acquis : 3
La note obtenue rentre dans le calcul de votre GPA.
Programme détaillé