Objectifs
Au terme de ce cours, la personne étudiante sera en mesure de/d’ :
- Développer des applications embarquées en mettant l'accent sur la programmation de firmware ;
- Concevoir et implémenter des pilotes pour l’intégration avec le système d’exploitation Linux ;
- Assurer une interaction efficace entre les composants matériels et logiciels.
Contenu
Systèmes embarqués et domaines d’application. Programmation embarquée : temps de traitement, interruptions, manipulation directe des registres. Alimentation et consommation énergétique. Architecture des microcontrôleurs : architecture RISC et microcontrôleurs ARM et AVR. Interfaces de communication (UART, SPI, I2C, etc.). Utilisation des périphériques embarqués (GPIO, ADC, PWM, etc.) pour interfacer des capteurs et contrôler des actionneurs. Programmation des firmwares : architecture, bootloader, noyau, gestion de la mémoire et optimisation des performances. Création de pilotes sous Linux pour l'intégration de capteurs et de matériel embarqué. Interaction avec le noyau Linux et l'infrastructure de gestion des périphériques. Compilation croisée et configuration du noyau Linux pour les systèmes embarqués. Ce cours comporte des séances obligatoires de travaux pratiques (TP) de 3h par semaine avec une attention particulière à l’interaction matérielle et logicielle.