Chapitre 1 INTRODUCTION
1. 0
Introduction
INTRODUCTION les différents langages
Le langage peut être plus ou moins proche du cœur de processeur ¾ Le langage machine C’est du binaire ¾ Le langage assembleur C’est un langage propre au cœur, donc non portable ¾ Le langage compilé C’est un standard, le langage C est un langage compilé ¾ Le langage interprété C’est un langage structuré objet comme par exemple JAVA
1. 4
Introduction
INTRODUCTION Caractéristiques du langage C Le langage C est un langage compilé ¾ la chaîne de compilation transforme les fichiers sources qui sont des fichiers texte en des fichiers exécutables par un microprocesseur ces fichiers exécutables contiennent un code binaire appelé code machine 9 ce code machine correspond aux instructions élémentaires du processeur • Comme les chaînes de compilation supportent généralement plusieurs processeurs, il faut préciser quel est le processeur cible ¾ l’assembleur est un langage lié au processeur donc non portable qui permet de développer des applications en mettant en œuvre ces instructions processeur élémentaires l’assembleur transforme un fichier source texte contenant ces instructions en un fichier binaire contenant le code machine exécutable certains langages sont interprétés ¾ exemple : le Basic ¾ dans ce cas il faut disposer d’un interpréteur sur la carte qui va exécuter le programme qui se charge dynamiquement de transformer les instructions du fichier source en code machine la performance est moins bonne qu’avec des langages compilés car cette étape d’interprétation amène des délais supplémentaires
1. 5
Introduction
INTRODUCTION Caractéristiques du langage C Le langage C est proche de l’assembleur car il permet des opérations de bas niveau généralement permises par ce langage ¾ décalage, ET logique, OU exclusif, pointeur ¾ à la différence de l’assembleur il présente l’avantage d’être portable en conséquence, il autorise des performances élevées ¾ mais ce langage est très permissif l’utilisateur peut en programmant en C provoquer des erreurs lors de l ’exécution par le processeur cible du code machine associé 9 IL CONVIENT DONC D’ÊTRE PRUDENT ESSENTIELLEMENT LORSQUE L’ON TRAVAILLE SUR DES POINTEURS un certain nombre de règles de codage seront exposées dans ce cours pour minimiser les risques de plantage à l’exécution en définitive le langage C est très bien adapté au développement d’applications embarquées temps réel dans la mesure où il autorise une portabilité des applications tout en restant proche du processeur
1. 6
Introduction
INTRODUCTION Objectifs de la formation
Cette formation aborde trois notions fondamentales pour la mise en œuvre d’applications temps réel embarquées développées en C : ¾ le paramétrage de la chaîne de compilation ¾ la connaissance du langage C ANSI ¾ l’implémentation du langage C dans un contexte temps réel embarqué
1. 7
Introduction
INTRODUCTION Présentation de la formation Un apprentissage de langage de programmation ne peut pas être envisagé sans manipulations ¾ ces manipulations sont conçues pour apprendre à maîtriser la syntaxe du C dans une optique d’applications temps réel embarqué Les 2 environnements qui seront utilisés : Processeur
Chaîne de Compilation
OS
Exécution
ARM
IAR
Aucun
STR712F evaluation board
ARM
IAR
Aucun
Simulateur IAR
¾ les exercices destinés à l’apprentissage des mécanismes du temps réel et de l’embarqué seront exécutés sur carte cible STR712F ¾ les exercices destinés à l’apprentissage de la syntaxe du C seront exécutés sur Simulateur IAR
Le répertoire de travail est : ¾ Labs_IAR_C_RT_Embedded\ 1. 8
Introduction
INTRODUCTION Organisation de la formation
Chapitres
Thèmes abordés
N°2
Explication de ce qu’est une chaîne de compilation, un compilateur et un linker
N°3, 4, 5, 6, 7, 8
Syntaxe du C
N°9
Allocation dynamique Listes chaînées
N°10
Les entrées / sorties La notion de driver
N°11, 12
Les traitements concurrents La notion de temps réel Le développement d’un séquenceur multitâches La communication inter-tâches
1. 9
Introduction