Cours Programmation C++ Embarquée PDF, Université des Sciences et de la technologie Houari Boumediene

Document Details

Uploaded by Deleted User

Université des Sciences et de la Technologie Houari Boumediène

2024

Dr. Hichem MAHFOUDI, FGE

Tags

programming C++ embedded systems computer science

Summary

This document provides an introduction to C++ programming, specifically focusing on embedded systems. It covers the basics of the language, and the concept of embedded systems and their components, as well as different programming languages used for handling embedded systems. The document also discusses the history of the language and describes how it is used to facilitate the programmer's tasks.

Full Transcript

Université des Sciences et de la technologie Houari Boumediene Faculté de Génie Electrique Département d’Electronique M1 ESE...

Université des Sciences et de la technologie Houari Boumediene Faculté de Génie Electrique Département d’Electronique M1 ESE Programmation C++ Embarquée Introduction sur le langage C++ Retrouvez aussi le cours sur : Préparé par: http://campusvirtuel.usthb.dz/ Dr. Hichem MAHFOUDI, FGE Année universitaire 2024/2025 1 Chapitre 1 INTRODUCTION SUR LE LANGAGE C++ 2 Système embarqué : définition Un système embarqué est un système informatique et électronique autonome qui exécute une tâche précise au sein de l’appareil auquel il est intégré. La plupart du temps, cette tâche est réalisée en temps réel. Le terme de « système embarqué » recouvre à la fois le matériel et le logiciel utilisés. Le logiciel est exécuté sur un microcontrôleur, un microprocesseur ou, plus rarement, sur un FPGA. Le choix de la plateforme dépend de la puissance de calcul nécessaire mais aussi des interfaces requises : bus de communication, écran, mesures analogiques… L’espace mémoire du système embarqué est généralement limité, de même que sa taille. Aussi, le système embarqué doit pouvoir effectuer sa tâche avec précision, dans des délais imposés, avec le meilleur ratio encombrement/mémoire/consommation d’énergie/coût. 3 Les langages de programmation ❑L’ordinateur ne comprend qu’un langage très simple constitué de 0 et de 1. 1010011010110001101011101100111100110 C’est le langage machine ! ❑Pour ce simplifier la vie, les informaticiens ont crée des langages intermédiaire plus simple. 4 Les langages de programmation Tous les langages de programmation ont le même but : nous permettre de parler à l'ordinateur plus simplement qu'en binaire. Voici comment cela fonctionne : 1.On écrit des instructions pour l'ordinateur dans un langage de programmation (par exemple le C++) ; 2.Les instructions sont traduites en binaire grâce à un programme de « traduction » ; 3.L'ordinateur peut alors lire le binaire et faire ce qu’il lui est demandé ! Le programme On obtient un programme en Votre programme est écrit dans de traduction binaire que l’ordinateur un langage simplifié: traduit en comprend: « Fais le calcul de 2+3 » « binaire » 100110011001110110 5 Les langages de programmation Le programme de traduction s’appelle un compilateur. C'est un outil indispensable. Il nous permet de transformer notre code, écrit dans un langage de programmation, en un vrai programme exécutable. Votre programme est écrit dans Exécutable (.exe sous windows un langage simplifié: COMPILATEUR par exemple): « Fais le calcul de 2+3 » 100110011001110110 6 Les langages de programmation ❑Un langage de haut niveau est un langage assez éloigné du binaire (et donc du fonctionnement de la machine), qui nous permet généralement de développer de façon plus souple et rapide. ❑Par opposition, un langage de bas niveau est plus proche du fonctionnement de la machine : il demande en général un peu plus d'efforts mais nous donne aussi plus de contrôle sur ce que nous faisons. C'est à double tranchant ! Le langage C++ fait partie de la seconde catégorie : c'est un langage dit « de bas niveau » 7 Historique du langage C++ Apparu au début des années 90, le langage C++ est actuellement l’un des plus utilisés dans le monde, aussi bien pour les applications scientifiques que pour le développement des logiciels. En tant qu’héritier du langage C, le C++ est d’une grande efficacité. Mais il a en plus des fonctionnalités puissantes, comme par exemple la notion de classe, qui permet d’appliquer les techniques de la programmation orienté objet (POO). 8 Historique du langage C++ ❑La programmation a déjà une longue histoire derrière elle. Au début, il n'existait même pas de clavier pour programmer ! On utilisait des cartes perforées pour donner des instructions à l'ordinateur. 9 Historique du langage C++ ❑1958 : il y a longtemps, à l'époque où les ordinateurs pesaient des tonnes et faisaient la taille d’une maison, on a commencé à inventer un langage de programmation appelé l'Algol. ❑1960-1970 : ensuite, les choses ont évolué par la création d’un nouveau langage appelé le CPL, qui évolua lui-même en BCPL, puis pris le nom de langage B. ❑1970 : puis, un beau jour, on en est arrivé à créer encore un autre langage qu'on a appelé... Le langage C, crée en 1972 par Dennis Ritchie ingénieur américain aux laboratoires Bell. Ce langage, s'il a subi quelques modifications, reste encore un des langages les plus utilisés aujourd'hui. ❑1983 : un peu plus tard, on a proposé d'ajouter des choses au langage C, de le faire évoluer. Ce nouveau langage, que l'on a appelé "C++", est entièrement basé sur le C. Le langage C++ n'est en fait rien d'autre que le langage C avec plusieurs nouveautés. Il s'agit de concepts de programmation poussés comme la programmation orientée objet. 10 Les versions standardisées ISO ❑C++98 C++98 date de 1998 et propose le support : des templates (types paramétrés) de la bibliothèque standard STL (Standard Template Library) avec les containers et algorithmes du RTTI (Run-time type information) qui permet de connaître dynamiquement à l'exécution le type d'un objet ❑C++03 Peu de nouveautés ont été introduites par C++03, il s'agit essentiellement d'amélioration et de corrections de bugs de la précédente version C++98. ❑C++11 Il s'agit de la révision la plus conséquente du langage C++. De nombreuses fonctionnalités ont été introduites : au niveau du langage lui-même (déclaration avec type auto ou decltype, références de rvalue, délégation et héritage de constructeur, expressions lambda, multithreading, attributs...) concernant la gestion de la mémoire (différents types de pointeurs, allocateurs personnalisés, possibilité d'utiliser un ramasse-miettes...) au niveau de la STL (std::chrono pour la gestion des dates, std::forward_list pour une liste simplement chaînée...) ❑C++14 C++14 est une révision d'ampleur relativement limitée (ajout de certains attributs comme [[deprecated]], facilités pour l'écriture de littéraux numériques..., fonctions lambda génériques et polymorphes...) ❑C++17 C++17 propose certaines nouveautés : concernant le langage (nouveaux attributs, if constexpr(exp), initialisations dans if et switch, déduction des types des templates...) pour la bibliothèque STL (introduction de std::string_view, container std::optional, bibliothèque de système de fichier inspirée de ``boost::filesystem, parallélisation de certains algorithmes...) ❑C++20 Voici un aperçu rapide des principales nouveautés : au niveau du langage (opérateur de comparaison , contraintes pour la spécialisation de templates, coroutines, métaclasses, réflexion...) pour la bibliothèque (nouvelles classes pour la programmation concurrente, introduction d'une nouvelle API réseau orientée objet...) 11 Définitions ❑Programme: C’est une série d’instructions qui doit être exécutées. Ces instructions sont généralement écrites dans un langage dit évolué, puis, avant d’être exécutées, sont traduites en langage machine (qui est le langage du microprocesseur). Cette traduction s’appelle compilation et elle est effectuée automatiquement par un programme appelé compilateur. ❑Compilateur: Un compilateur est un programme qui transforme un code source en un code objet. Généralement, le code source est écrit dans un langage de programmation (le langage source), il est de haut niveau d'abstraction, et facilement compréhensible par l'humain. Le code objet est généralement écrit en langage de plus bas niveau (appelé langage cible), par exemple un langage d'assemblage ou langage machine, afin de créer un programme exécutable par une machine. 12 Définitions ❑Syntaxe: C’est la façon d’écrire un programme. ❑Instruction Un ordre donné à un ordinateur. ❑Variable Un nom utilisé dans un programme pour faire référence à une donnée manipulée par programme. ❑Constante Un nom utilisé pour faire référence à une valeur permanente ou fixe. 13 Structure d’un programme C++ Un programme en C++ se compose de plusieurs fichiers sources, on distingue deux types: ❑Ceux qui contiennent effectivement des instructions ; leur nom possède l’extension.cpp ❑Ceux qui contiennent que des déclarations ; leur nom possède l’extension.h (signifiant ‘header’ ou en-tête). Les instructions sont obligatoirement encapsulées dans des fonctions et il existe une fonction privilégiée appelée main qui est le point de départ de tout programme. 14 Structure d’un programme C++ Le header : La directive #include On place en général au début du programme un certain nombre d'instructions commençant par #include. Cette instruction permet d’inclure dans un programme la définition de certains objets, types ou fonctions. Le nom du fichier peut être soit à l'intérieur des chevrons < et >, soit entre guillemets : #include Inclut le fichier nom_fichier en le cherchant d'abord dans les chemins configurés, puis dans le même répertoire que le fichier source, 15 Structure d’un programme C++ Le header : using namespace std; Pour des raisons liées à la POO et pour éviter certains conflits qui peuvent surgir entre les différents noms des outils utilisés (prédéfinis ou définis par l'utilisateur), C++ introduit la notion de namespace (espace de noms), ce qui permet de définir des zones de déclaration et de définitions des différents outils (variables, fonctions, types,…). Ainsi, chaque élément défini dans un programme ou dans une bibliothèque appartient désormais à un namespace. La plupart des outils d’Entrées / Sorties de la bibliothèque de C++ appartiennent à un namespace nommé "std". 16 Structure d’un programme C++ La fonction main: Tout programme doit obligatoirement contenir un point d’entrée nommé main La syntaxe: La fonction main est la fonction appelée par le système d’exploitation lors de l'exécution du programme int main () ❑{ et } délimitent le corps de la fonction { return 0; ❑main retourne un entier au système: 0 (zéro) veut dire succès } ❑Chaque expression doit finir par ; (point virgule) 17 Structure d’un programme C++ Les commentaire : Il faut toujours commenté ces programmes, même si elle contienne que quelque lignes de code. Il existe deux façon de commenter son programme: ❑Commentaire sur une seul ligne : on utilise // ❑Commentaire sur plusieurs lignes : On mets le commentaire entre 18 Logiciels pour la programmation ❑Un éditeur de texte pour écrire le code source du programme en C++. En théorie un logiciel comme le Bloc-Notes sous Windows, ou "vi" sous Linux fait l'affaire. L'idéal, c'est d'avoir un éditeur de texte intelligent qui colore tout seul le code, ce qui vous permet de vous repérer dedans bien plus facilement. Voilà pourquoi aucun programmeur sain d'esprit n'utilise Bloc-Notes. ❑Un compilateur ("compiler") pour transformer votre source en binaire. ❑Un débugger pour vous aider à traquer les erreurs dans votre programme (on n’a malheureusement pas encore inventé le "correcteur", un truc qui corrigerait tout seul nos erreurs. 19 Logiciels pour la programmation ❑Pour facilité la programmation, on utilise des programme 3en1 qui combine éditeur de texte, compilateur et débuggeur. ❑Il existe plusieurs IDE (Integrated development environment) ou « EDI » pour « Environnement de Développement Intégré » : ▪ Code::Blocks (Windows, Mac et Linux) ▪ Windows Visual Studio et Visual C++ Express (Windows) ▪ Dev-C++ ▪ XCode (Mac OS) ▪ …. Et pleins d’autre encore 20 Exemple de programme en C++ Donne moi ton année de naissance, je te dirais ton âge. 21 Exemple de programme en C++ L’organigramme : Début Ecrire ‘Quelle est votre année de naissance ?’ Lire annee age  2023-annee Ecrire ‘Vous avez ’, age Fin 22 Exemple de programme en C++ Le programme en C++ Le fichier iostream Le fichier iostream contient un certain nombre de définitions d’objets intervenant dans les entrées/sorties du programme, c’est-à-dire dans l’affichage à l’écran ou dans des fichiers. La définition de cout se trouve dans ce fichier; pour utiliser cout dans notre programme, il faut inclure au début du programme la ligne suivante : include Ce fichier est fourni par l’éditeur du compilateur : il s’agit d’un fichier C++ standard. 23 Exemple de programme en C++ L’organigramme : Le programme en C++ Début Ecrire ‘Quelle est votre année de naissance ?’ Lire annee Résultat : age 2023-annee Ecrire ‘Vous avez ’, age Fin 24

Use Quizgecko on...
Browser
Browser