Debian logo [embedded-µC.LINUX]

Initiation au développement C sur microcontrôleur

Philippe Latu

Historique des versions
Version $Revision: 1153 $ $Date: 2007-06-14 14:25:15 +0200 (jeu, 14 jun 2007) $ $Author: latu $
Année universitaire 2006-2007.

Résumé

Ce support est une initiation au développement en Langage C sur les systèmes embarqués. Cette version s'appuie sur le microcontrôleur MSC1210 de Texas Instruments™. Le support est destiné aux débutants. On présente sommairement l'environnement système, les chaînes de développement, le Langage C et on illustre les applications classiques de ces systèmes spécialisés.

Aujourd'hui, la grande majorité des étudiants ont l'habitude d'utiliser des systèmes informatiques sans se poser de questions sur la présence ou non d'un système d'exploitation qui prend en charge la gestion du temps processeur, de la mémoire et des périphériques. Ce document essaie d'illustrer les différences entre les deux contextes d'utilisation avec et sans noyau de système d'exploitation. Le maximum d'exemples de programmes sont présentés dans ces deux contextes.

Table des matières

1. Copyright et Licence
1.1. Méta-information
2. Avant Propos
2.1. C/C++ & Unix
2.2. Programmation procédurale ou orientée objet
2.3. Logiciels libres
3. Développement et Système
3.1. Ordinateur cible avec système d'exploitation
3.2. Ordinateur cible sans système d'exploitation
4. Cycle de développement
5. Un premier programme : «Hello, World!»
5.1. Codes source
5.2. Compilation & exécution sur Windows XP
5.3. Compilation & exécution sur GNU/Linux
5.4. Compilation sur Windows & exécution sur cible MSC1210
5.5. Compilation sur GNU/Linux & exécution sur cible MSC1210
6. Caractéristiques des microcontrôleurs de la famille MSC12xx
7. Éléments de Langage C
7.1. Délimiteurs
7.2. Représentation des données
7.3. Types de représentation des données
7.4. Constantes
7.5. Opérateurs de calcul
7.6. Opérateurs relationnels
7.7. Opérateurs logiques de bits
7.8. Instruction de test if-else
7.9. Instructions de choix multiples : switch & if-else-if
7.10. Instructions de boucles : for, while, do-while
7.10.1. Syntaxe de la boucle pour (for)
7.10.2. Syntaxe de la boucle répéter jusqu'à (do-while)
7.10.3. Syntaxe de la boucle tant que (while)
7.11. Sous-programmes
8. Entrées et sorties standard : fonctions getchar & putchar
8.1. Avec Système d'exploitation
8.2. Sans système d'exploitation & cible MSC1210
9. Entrées et sorties formatées : fonctions scanf & printf
9.1. Définitions générales
9.2. Exemple avec GCC
9.3. Exemple avec SDCC sur cible MSC1210
9.4. Utilisation des caractères spéciaux
10. Gestion d'un afficheur à cristaux liquides (LCD)
10.1. Caractéristiques d'un afficheur du type HD44780U
10.2. Utilisation d'un afficheur LCD avec SDCC sur cible MSC1210
11. Gestion des entrées/sorties logiques
11.1. Exemple d'entrées/sorties sur un bit
11.2. Exemple d'entrées/sorties sur plusieurs bits
12. Contraintes de temps sur les sorties numériques
12.1. Temps d'exécution d'une instruction nop
12.2. Temps d'exécution d'une temporisation codée en assembleur en ligne
12.3. Temps d'exécution d'une temporisation basée sur une boucle tant-que
12.4. Temps d'exécution d'une temporisation basée sur une boucle pour
12.5. Récapitulatif des temps d'exécution
13. Outils de développement
13.1. C/C++ sur Windows : Dev-Cpp
13.2. C/C++ sur GNU/linux
13.3. C sur MSC1210 : SDCC
13.4. Logiciel de programmation de la mémoire Flash du MSC1210 via le port série
14. Codes source
14.1. Sources GNU/GCC
14.2. Sources MSC1210
15. Documentations de référence
15.1. Système d'exploitation GNU/Linux
15.2. SDCC - Small Device C Compiler
15.3. Microcontrôleurs MSC12xx
15.4. Bus I²C
A. En-tête ser_msc1210.h

1. Copyright et Licence

Copyright (c)  2000,2007 Philippe Latu.
Permission is granted to copy, distribute and/or modify this 
document under the terms of the GNU Free Documentation License, 
Version 1.2 or any later version published by the Free Software
Foundation; with no Invariant Sections, no Front-Cover Texts, 
and no Back-Cover Texts. A copy of the license is included in 
the section entitled "GNU Free Documentation License".
Copyright (c)  2000,2007 Philippe Latu.
Permission est accordée de copier, distribuer et/ou modifier ce
document selon les termes de la Licence de Documentation Libre GNU
(GNU Free Documentation License), version 1.2 ou toute version
ultérieure publiée par la Free Software Foundation ; sans
Sections Invariables ; sans Texte de Première de Couverture, et
sans Texte de Quatrième de Couverture. Une copie de
la présente Licence est incluse dans la section intitulée
« Licence de Documentation Libre GNU ».

1.1. Méta-information

Cet article est écrit avec DocBook XML sur un système Debian GNU/Linux. Il est disponible en version imprimable aux formats PDF et PostScript : sdcc_course.pdf| sdcc_course.ps.gz.