Sommaire: Cours langage C gratuit pour l’embarque
1. Objectifs
2. Introduction
2.1. Historique
2.2. C K&R
2.3. C ANSI
2.4. C++
2.5. Le langage C par rapport aux autres langages de programmation
2.6. Avantages du langage C
2.7. Inconvénients du langage C
3. Les principes de base de la compilation
3.1. Quelques généralités
3.2. Programme C : Hello world
3.3. Compilation et édition de liens
4. Remarques générales
4.1. Les fichiers include
4.2. Les commentaires
5. Eléments de base
5.1. Les types de données élémentaires
5.2. Les entiers
Le type char
Les types short, long ou int
Le type réel
5.3. Les constantes littérales
Les constantes de type caractère
Les chaînes de caractères
Les booléens
5.4. Les variables
6. Opérateurs et expressions
6.1. Généralités sur les opérateurs
Opérateurs et priorités
L’opérateur d’affectation
Les opérateurs arithmétiques
Les opérateurs de comparaison
Les opérateurs logiques
Les opérateurs de manipulation de bits
Les autres opérateurs binaires d’affectation
Les autres opérateurs unaires d’affectation
Autres opérateurs
6.2. Conversion de types
Les conversions implicites
Les conversions explicites
6.3. Récapitulatif
7. Structures de contrôle de programme
7.1. L’instruction if
7.2. Les instructions while, do et for
7.3. L’ instruction goto
8. Structures de programmes et fonctions
8.1. Introduction
Déclaration de fonction
Arguments formels
Arguments effectifs
Type de la fonction.
8.2. Appels de fonction et gestion de la pile
Passage par valeur
Passage par adresse
8.3. Divers
Fonction sans argument et/ou qui ne retourne rien
Fonction récursive
9. Visibilité des données
9.1. Variables globales et locales
9.2. Variables globales privées et publiques
9.3. Fonctions privées et publiques
10. Pointeurs
10.1. Introduction
10.2. Pointeurs et tableaux
10.3. Le type void
11. Les entrées sorties hautniveau formatées
11.1. Les E/S formatés. Les E/S bas niveau
11.2. Le tampon d’entrée sortie des appels d’E/S formatés
11.3. Fonctions générales sur les flots
fopen
fclose
fflush
feof
11.4. Les flots standards d’E/S
11.5. Lecture et écriture enmode caractère
fputc
fgetc
Les macros putc et getc
getchar
putchar
11.6. Lecture et écriture en modechaîne de caractères
fgets
fputs
gets
puts
11.7. Lecture et écriture formatée
Ecriture formatée avec printf
Ecriture formatée avec scanf
12. Les entrées sorties bas niveau
open et create
read et write
ioctl
close
13. Comparaison entre les E/S bas niveau et haut niveau
13.1. Cas de Linux
13.2. Comparaisons par l’exemple
14. Programmation C avancée
14.1. Arguments passés à un programme
14.2. Options de compilation
15. Les bibliothèques standards
15.1. Entrées sorties <stdio.h>
Opérations sur les fichiers
Accès aux fichiers
E/S formatées et bufferisées
E/S mode caractère
E/S mode binaire
Position dans un fichier
Gestion des erreurs
15.2. Mathématiques <math.h>
Fonctions trigonométriques et hyperboliques
Fonctions exponentielles et logarithmiques
Fonctions diverses
15.3. Manipulation de chaînes de caractères <string.h>
15.4. Manipulation de caractères <ctype.h>
15.5. Utilitaires divers <stdlib.h>.
Conversion de nombres
Génération de nombres pseudo aléatoires
gestion de la mémoire
Communication avec l’environnement
Arithmétique sur les entiers
16. Exemples de programmes C pour l’embarqué
16.1. Exemple 1 : programmation mémoire EPROM
16.2. Exemple 2 : pilotage d’un module par la liaison série
16.3. Exemple 3 : bibliothèque de contrôle d’une carte VME
16.4. Exemple 4 : pilotage de la liaison série d’un microcontrôleur
16.5. Exemple 5 : pilotage d’un périphérique d’E/S. Structure C
17. Quelques pièges classiques
17.1. Erreurs sur l’affectation
17.2. Erreurs avec les macros
Un #definen’est pas une déclaration
Un #definen’est pas une initialisation
17.3. Erreurs avec l’instruction if
17.4. Erreurs avec les commentaires
17.5. Erreurs avec les priorités des opérateurs
17.6. Erreurs avec l’instruction switch
Oubli du break
Erreurs sur le default
17.7. Erreurs sur les tableauxmultidimensionnels
18. Bibliographie
19. Webographie
Extrait du cours langage C gratuit pour l’embarque
1. OBJECTIFS
1. Balayer et revoir les aspects importants et essentiels du langage C que doit maîtriser tout ingénieur électronicien afinde concevoir le logiciel de base d’un système numérique (système embarqué). Les bases du langage C ont été vues en première année…
2. Connaître les points forts et les points faibles du langage C. Eviter les pièges classiques.
3. Maîtriser les appels d’E/S de base et formatés en langage C. Intérêt pour les systèmes embarqués.
4. Comprendre comment on développe une application embarquée en langage C à travers des exemples.
2. INTRODUCTION
2.1. Historique
Aucun langage de programmation n’a pu se vanter d’une croissance en popularité comparable à celle de C.
Le langage C n’est pas un nouveau né dans le monde informatique :
– 1972 : développement par ATT Bell Laboratories.
But :
– Développer une version portable d’un système d’exploitation ouvert qui ne plante pas (UNIX) (Kernighan et Ritchie) sur PDP7 afin de mettre en commun les imprimantes des secrétaires du laboratoire.
2.2. C K&R
1978 : Kernighan et Ritchie publient la définition classique du langage C (connue sous le nom de standard K&R-C ) dans un livre intitulé The C Programming Language.
2.3. C ANSI
Nécessité la définition d’un standard actualisé et plus précis.
1983 : l’American National Standards Institute (ANSI) charge une commission de mettre au point une définition explicite et indépendante machine pour le langage C (standardisation des appels d’E/S. Il n’y a pas de mots clés réservés read, readln write, writeln comme avec le langage Pascal…) : naissance du standard C-ANSI (ANSI-C).Dans le cas d’un système embarqué programmé en C, il faut même se poser la question de l’existence du « printf() » ! Voir plus loin…
1988 : seconde édition du livre The C Programming Languagerespectant le standard -C-ANSI. C’est la bible du programmeur enC (Le langage C. K&R. Editions Masson).
2.4. C++
1983 : création du langage C++ par un groupede développeurs de AT&T sous la direction de Bjarne Stroustrup.
But :
– Développer un langage qui garde les avantages de ANSI-C mais orienté objet.
Depuis 1990, il existe une ébauche pour un standard ANSI-C++.
Remarque :
– C++ est un sur-ensemble du C si bien que 80% des gens qui déclarent développer en C++ développent en fait en C !
2.6. Avantages du langage C
C est un langage :
(1) universel :
C n’est pas orienté vers un domaine d’applications spéciales comme SQL par exemple…
(2) compact :
C est basé sur un noyau de fonctions et d’opérateurs limités qui permet la formulation d’expressions simples mais efficaces.
(3) moderne :
C est un langage structuré, déclaratif et récursif. Il offre des structures de contrôle et de déclaration comme le langage Pascal.
……..
Cours langage C gratuit pour l’embarque (748 KO) (Cours PDF)