Langage C et Outils pour le Système Embarqué (LCOSE) - KAIN5M13

Informations générales

  • Volumes horaires

    • CM 9.0
    • Projet -
    • TD 9.0
    • Stage -
    • TP 15.0
    • DS 3.0

    Crédits ECTS

    Cré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

Prérequis

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.

Calendrier

Le cours est programmé dans ces filières :

  • Formations d'ingénieur - INFO - Semestre 5

Informations complémentaires

Code de l'enseignement : KAIN5M13
Langue(s) d'enseignement : FR

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