1
Systèmes ordinés en temps réel 1
ELE-542
Systèmes ordinés en temps réels
Cours # 3
Langage C et temps réel
Jean-Marc Beaulieu et Bruno De Kelper
Site internet: http://www.ele.etsmtl.ca/academique/ele542/
Systèmes ordinés en temps réel 2
Qu’est ce qui influence le temps d’exécution
Matériel
Programme
Compilateur
Matériel
Processeur
Taille (8, 16, 32 bits)
Instructions
Pipeline, cache
Mémoire
Bus système
Compilateur
Optimisation du code
Déroulement de boucle
Utilisation de registres
« Inlining »
Instructions spéciales du CPU
Algorithmes
Choix des variables
Type des variables
Emplacement en mémoire
Choix des opérations
Algorithmes
Algorithmes
Programme
2
Systèmes ordinés en temps réel 3
Le matériel
Processeur Mémoire
Bus d’adresse
Bus de données
Systèmes ordinés en temps réel 4
Le langage C pour le temps réel
Ce qu’on veut analyser :
En quoi le langage C aide-t-il à la conception temps réel ?
Quelles sont les caractéristiques désirables pour le T.R ?
En C, qu’est-ce qui influence le temps d’exécution ?
Pourquoi le langage C ?
Les compilateurs sont très performants;
Le temps de développement est beaucoup plus court;
Beaucoup de développement déjà existant;
Portabilité d’une architecture à une autre.
3
Systèmes ordinés en temps réel 5
Architecture du programme
Systèmes ordinés en temps réel 6
Modularité en langage C
La modularité permet de décomposer un projet en bloc plus
facile à gérer.
En C, nous avons la notion de fonction et la notion de bloc de
code (code entre { }).
Au plus haut niveau, l’approche consiste à découper le code
en utilisant plusieurs types de fichiers.
Identifier les fichiers sources (.c);
Identifier les fichiers d’en-têtes et d’inclusions (.h);
Identifier les fichiers de données et les fichiers
spéciaux.
4
Systèmes ordinés en temps réel 7
Sortes de fichiers
Sortes de fichiers
.c
Code source en C.
Le module principal doit contenir la définition
de la fonction main().
Permet d’exploiter la compilation séparée.
.obj, .o
Code objet. Fonction compilée traduite en
assembleur mais non localisée en mémoire.
(adresse relative)
Code orienté selon un processeur cible.
Résultant de la compilation d’une source .c.
Systèmes ordinés en temps réel 8
Sortes de fichiers
.h
Fichier d’inclusion et d’en-têtes;
Utilisation :
#include <math.h> /*répertoire système*/
#include ”math.h ” /*répertoires courants*/
Contient les déclarations de fonctions (prototype);
Contient les structures de données (typedef STRUCT);
Contient les définitions communes (#define PI 3.141592);
Contient les variables globales.
5
Systèmes ordinés en temps réel 9
Sortes de fichiers
.lib
Bibliothèque;
Regroupement de fonctions compilées sous format objet
(.o);
Outil tlib pour construire et générer une bibliothèque.
.exe (.hex)
Exécutable;
Contient un code compilé à charger en mémoire;
Comprend le code du programme et de tous ces modules,
localisés en mémoire;
Résultant de l’édition des liens (Linker).
Systèmes ordinés en temps réel 10
Processus de compilation
Compilateur : Traduction en langage
machine. Adresse relative. Laisse un espace
pour les appels de fonctions. Utilise les
prototypes des fonctions appelées pour
garder un espace. Étape lente
Votre source appelle;
fabs(float); /*nécessite l’entête dans
math.h*/
Linker : Assemble toutes les portions de
code compilées. Place des adresses absolues.
Le code des fonctions provient de vos .o ou
des biblio .lib.
Votre source a besoin du code compilé de
fabs(), alors il le prendra dans math.lib.
.h
.c
.h
.c
.h
Compilateur
Linker
.o .o
.exe
.lib
1 / 40 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !