I. Présentation

Ce cours a pour objectif de balayer et revoir les aspects importants et essentiels du langage C que doit maîtriser tout ingénieur électronicien afin de concevoir le logiciel de base d'un système numérique (système embarqué). Il passe en revue les points forts et les points faibles du langage C. Il permettra d'éviter les pièges classiques, de maîtriser les appels d'E/S de base et formatés en langage C utiles pour les systèmes embarqués. Et de comprendre comment on développe une application embarquée en langage C à travers des exemples.

II. Sommaire

  1. Objectifs
  2. Introduction
    1. Historique
    2. C K&R
    3. C ANSI
    4. C++
    5. Le langage C par rapport aux autres langages de programmation
    6. Avantages du langage C
    7. Inconvénients du langage C
  3. Les principes de base de la compilation
    1. Quelques généralités
    2. Programme C : Hello world
    3. Compilation et édition de liens
  4. Remarques générales
    1. Les fichiers include
    2. Les commentaires
  5. Éléments de base
    1. Les types de données élémentaires.
    2. Les entiers
    3. Les constantes littérales
    4. Les variables
  6. Opérateurs et expressions
    1. Généralités sur les opérateurs
    2. Conversion de types
    3. Récapitulatif
  7. Structures de contrôle de programme
    1. L'instruction if
    2. Les instructions while, do et for
    3. L'instruction goto
  8. Structures de programmes et fonctions
    1. Introduction
    2. Appels de fonction et gestion de la pile
    3. Divers
  9. Visibilité des données 107
    1. Variables globales et locales
    2. Variables globales privées et publiques
    3. Fonctions privées et publiques
  10. Pointeurs
    1. Introduction
    2. Pointeurs et tableaux
    3. Le type void
  11. Les entrées sorties haut niveau formatées
    1. Les E/S formatés. Les E/S bas niveau
    2. Le tampon d'entrée sortie des appels d'E/S formatés
    3. Fonctions générales sur les flots
    4. Les flots standards d'E/S
    5. Lecture et écriture en mode caractère
    6. Lecture et écriture en mode chaîne de caractères
    7. Lecture et écriture formatée
  12. Les entrées sorties bas niveau
  13. Comparaison entre les E/S bas niveau et haut niveau
    1. Cas de Linux
    2. Comparaisons par l'exemple
  14. Programmation C avancée
    1. Arguments passés à un programme
    2. Options de compilation
  15. Les bibliothèques standards
    1. Entrées sorties stdio.h
    2. Mathématiques math.h
    3. Manipulation de chaînes de caractères string.h
    4. Manipulation de caractères ctype.h
    5. Utilitaires divers stdlib.h
  16. Exemples de programmes C pour l'embarqué
    1. Exemple 1 : programmation mémoire EPROM
    2. Exemple 2 : pilotage d'un module par la liaison série
    3. Exemple 3 : bibliothèque de contrôle d'une carte VME
    4. Exemple 4 : pilotage de la liaison série d'un microcontrôleur
    5. Exemple 5 : pilotage d'un périphérique d'E/S. Structure C
  17. Quelques pièges classiques
    1. Erreurs sur l'affectation
    2. Erreurs avec les macros
    3. Erreurs avec l'instruction if
    4. Erreurs avec les commentaires
    5. Erreurs avec les priorités des opérateurs
    6. Erreurs avec l'instruction switch
    7. Erreurs sur les tableaux multidimensionnels
  18. Bibliographie
  19. Webographie

III. Téléchargement

Téléchargez le cours au format PDF (668 Ko, 219 diapos) en mode FTP.

Si le lien précédent ne fonctionne pas, utilisez le mode HTTP de secours.

Pour lire les documents au format PDF, vous pouvez utiliser le logiciel Adobe Acrobat Reader.

IV. L'auteur

L'auteur Patrice Kadionik est ingénieur en Télécommunications-Réseaux de formation. Il est actuellement Enseignant Chercheur à l'ENSEIRB et est responsable de l'option Systèmes Embarqués. Pour plus d'informations, rendez-vous sur sa page personnelle.