Formation “Programmer en C sur micro-contrôleurs”

Langage C sur micro-contrôleursLe langage C est largement employé dans de nombreux développement logiciels, tout particulièrement dans le domaine industriel. Permettant un développement à un niveau élevé, tout en permettant un contrôle très fin du code produit, le langage C est un outil de choix pour le développement embarqué, tant pour des applications s’appuyant sur des systèmes d’exploitation complets (VxWorks, Linux, ucLinux, etc.) que pour les programmes embarqués dans des micro-contrôleurs.

L’objectif de ce cours est de maîtriser l’environnement de développement et le langage C  pour employer au mieux les fonctionnalités offertes par les micro-contrôleurs modernes.

Les travaux pratiques de ce cours se déroulent sur micro-contrôleurs Texas Instruments MSP430 à l’aide d’une carte de développement Launchpad. Les participants peuvent conserver le micro-contrôleur et la carte de développement à l’issue de la formation.

Points-clés

Durée : 3 jours (2 jours en formation individuelle)

Tarifs 2017-2018 :

  • En nos locaux à Évry (91) : 1710 €HT (déjeuners et collations offerts).
    Tarif dégressif si plusieurs inscrits de la même société à la même session.

Pré-requis : connaissance de Linux (utilisateur) et du langage C

Conseil cursus : pour prolonger cette formation, nous vous proposons les cours “Linux embarqué” ou “Développement système sous Linux“.

Plan : Téléchargez le plan détaillé au format PDF.

Thèmes abordés

  • Concepts du langage C : présentation, avantages et inconvénients, utilisations typiques.
  • Outils de développement : environnement, compilateur, débogueur.
  • Structures des programmes : exemple, vocabulaire, fonctions et variables, constantes, types et expressions.
  • Les variables du C : globales et locales, détail des types scalaires, tableaux.
  • Les fonctions : passage d’arguments, types de retour, passage par valeur, passage par référence.
  • Les pointeurs : déclarations, pièges, arithmétique des pointeurs, initialisation et utilisation.
  • Structures de contrôle : tests et itérations, sélections.
  • Expressions du C : opérateurs mathématiques, logiques et binaires.
  • Les travaux pratiques sont réalisés sur plateforme PIC ou ATMEL au choix des participants. Les exercices proposés couvrent l’ensemble des possibilités des
    micro-contrôleurs  (entrées-sorties, conversions analogiques/numériques, communications séries, etc.).

Plan détaillé

Concepts du langage C

  • Présentation : Premières versions du langage C, évolutions, standards et normes
  • Avantages et inconvénients : Efficacité et performance, proximité du matériel et du processeur, portabilité, laxisme du langage, exemples de bogues courants et des conséquences désastreuses.
  • Utilisations typiques : Systèmes industriels et embarqués, serveurs et réseaux, télécommunication, gestion de données.

Outils de développement

  • Environnements : Présentation de l’environnement de développement Éclipse. Présentation du compilateur C.
  • Compilation : Création d’un projet et compilation d’un premier programme, exécution et résultat. Rôle de la bibliothèque C.
  • Débogage : Principes de débogage, ICE et traces, tests.

Structures des programmes

  • Aspect et vocabulaire du C : Présentation de code, indentation, caractères spéciaux, mots-clés, définition et  déclaration de fonctions, fichier d’entête, fonctions de bibliothèque.
  • Fonctions : Écriture des fonctions, différences entre déclaration et définition, paramètres.
  • Variables : Types des variables, déclaration et utilisation, expression et constantes.

Les variables du C

  • Portée et persistance : Stockage des variables en pile, variables globales et variables locales, variables automatiques et statiques.
  • Les types scalaires : Format et représentation interne, utilisation.
  • Les tableaux : Tableaux d’entiers, déclaration, initialisation et utilisation.

Les fonctions

  • Passage d’arguments : Utilisation de la pile, types des paramètres, modification des paramètres formels, passage par valeur, réservation de l’espace dans la pile.
  • Types de retour : Utilisation des valeurs de retour des fonctions. Limitation à une valeur.
  • Passage d’argument par référence : Nécessité de passer un pointeur dans la pile, modification des paramètres d’appel.

Les pointeurs

  • Déclarations des pointeurs : Exemple de déclaration des types, affichage des valeurs des pointeurs et des contenus pointés. Risques liés à l’utilisation des pointeurs.
  • Arithmétique des pointeurs : Concepts, vérification des pas d’incrémentation en fonction des types de données.

Structures de contrôle

  • Structures de test : Structure if / else. Imbrications et indentation. Expression testée. Confusion entre égalité et affectation.
  • Structure de sélection : Construction switch / case. Utilisation du break.
  • Itération conditionnelle : Boucles while et until. Boucle infinie. Rupture de séquence.
  • Énumération : Boucle for. Syntaxe usuelle et variantes. Rupture de séquence.

Expressions du C

  • Opérateurs arithmétique : Opérateurs classiques, notations condensées, pré- ou post- incrémentation et décrémentation.
  • Opérateurs logiques : Valeurs de vérité, composition d’expressions booléennes
  • Opérateurs binaires : ET, OU, OU exclusif, négation, décalage, masques

Conclusion

Discussions et expérimentations libres sur l’ensemble des thèmes abordés.