Date |
Contenus traités dans le cours |
Heures |
|
1. Introduction
- Anatomie d’un système embarqué moderne
- Architecture informatique du système
- Chaîne d’amorçage et processus de démarrage du système
- Concepts de base du « chargeur d’amorçage » (BootLoader)
- Considérations sur le Noyau
- Interpréteur de commandes de base BusyBox
- Système de fichier de base (RootFS).
|
6 heures |
|
2. Outils de développement et de mise au point
- Outils de conception du système :
- Émulation avec QEMU
- Conception d’un système complet avec BuildRoot
- Compilation croisée et « chaîne d’outils » (ToolChain)
- Environnements modernes de développement de systèmes embarqués
- Outils de déverminage, de vérification et de profilage (GDB, GCov, Valgrind, …)
- Techniques de déverminage et de vérification.
|
6 heures |
|
3. Développement d’applications embarquées
- Caractéristiques « temps-réel » du système d’exploitation Linux
- Gérer le matériel et ornières matérielles
- Programmation défensive
- Gestion du flot d’activités
- Faire plus avec moins : développement à ressources limitées
- Réduire la consommation en puissance.
|
15 heures |
|
4. Fiabilité, robustesse et tolérance aux fautes
- Classification des fautes, types de redondances et mesures de base
- Fautes matérielles :
- Taux de fautes, fiabilité et MTF
- Structures canoniques et résilientes
- Techniques de tolérance aux fautes
- Fautes byzantines
- Redondance de données
- Modèle de fiabilité et tolérance logicielle :
- Tests d’acceptation
- Tolérance à version unique et programmation en N-versions
- Approche par blocs de recouvrement
- Préconditions, post-conditions et assertions
|
12 heures |
|
Total |
39 |