Informations générales
Volumes horaires
- CM 9.0
- Projet -
- TD 9.0
- Stage -
- TP 15.0
- DS 3.0
Crédits ECTSCrédits ECTS
0.5
Objectif(s)
- Maîtrise du langage C, en particulier pour la programmation "bas niveau" (proche du système et du matériel).
- Comprendre et maîtriser le fonctionnement d'un microcontrôleur en prenant l'exemple de la carte STM32-Nucleo
- Comprendre et maîtriser l'utilisation des périphériques de base : ports d'entrées/sorties et port série
- Comprendre la programmation sous interruption
Contenu(s)
Langage C pour la programmation des systèmes embarqués
- Programmation modulaire, compilation séparée, Makefile; création de bibliothèques.
- Approfondissement de la notion de pointeurs (manipulation, gestion de la mémoire, passage en paramètre, arithmétique sur les adresses)
- Structures et listes chaînées (création, destruction, manipulation).
- Traitant d'interruptions
Application pratique: programmation d'un microprocesseur sur carte
- Utillisation de la pile et ports d'entrées/sorties (GPIO)
- Communication série (UART)
- Interruptions et tâches d'interruptions (SysTick/EXTI)
Ces compétences sont mobilisées dans deux projets de programmation C lors d'une semaine intensive en fin de semestre :
- développement d'un allocateur mémoire
- développement d'une application sur carte Nucleo
Fait suite au cours de programmation C qui amène à un niveau intermédiaire
(syntaxe de base, instructions conditionnelles et itératives, entrées/sorties conversationnelles, fonctions, tableaux, chaînes de caractères, pointeurs, passages d'arguments, pile d'appels).
Contrôle des connaissances
40% contrôle continu :
- 2 projets notés
60% examen terminal : - 2 épreuves écrites - 2 x 1h30
- documents autorisés : une feuille A4 recto-verso manuscrite
- en cas de tiers-temps : 1/3 temps supplémentaire
En cas de non validation d’une UE, le jury peut autoriser l’élève ingénieur à passer des épreuves complémentaires pour la valider.
Informations complémentaires
Code de l'enseignement : KAIN5M13
Langue(s) d'enseignement : 
Vous pouvez retrouver ce cours dans la liste de tous les cours.
Bibliographie
- Langage C
- "Programmer en langage C", Claude Delannoy, Eyrolles.
- "C: langage, bibliothèque, applications", Henri Garreta, InterEditions.
- "Le langage C - Norme ANSI", B.Kernighan et D.Ritchie, Dunod.
- "Managing projects with GNU Make", Robert Mecklenburg, O'Reilly.
- Exécution sur Carte Nucleo
- Marc Laury, À la découverte des cartes Nucleo, Eyrolles, 2017
- Documentations disponibles sur le site du constructeur ST Microelectronics
- PM0214 Cortex-M4 Programming manual
- RM390 STM32F446 Reference manual + STM32F446xC/E Datasheet
- UM1724 STM32 Nucleo-64 board User manual