+ +
- -
Systèmes d'Exploitation
Calendrier  Détails
Programmation
 
Calendrier  Détails
Processeurs ARM
 
Calendrier  Détails
Processeurs PowerPC
 
 
 
 
Calendrier  Détails
Communications
 
 
Calendrier  Détails
+ +
> >
- -

 
ac6 >> ac6-training >> Programmation >> Langages >> C++ embarqué Télécharger le catalogue Télécharger la page Ecrivez nous Version imprimable

L3 C++ embarqué

Le langage C++ pour les systèmes embarqués

formateur
Objectifs
  • Maîtriser les bases du langage C++
  • Découvrir la spécification Embedded C++ (EC++)
  • Intégrer les templates C++ (code générique) dans les systèmes embarqués
  • maîtriser les aspects avancés du C++ tels que le polymorphisme, l'héritage simple et l'héritage multiple
  • Redéfinir les opérateurs C++ d'allocation dynamique de mémoire pour l'embarqué
  • Rendre les objets C++ persistants flashables et romables
  • Gérer les situations d'exceptions C++ pour sécuriser les applications embarquées
  • manager des interruptions de timer en C++
  • Utiliser des objets C++ pour gérer la transmission/réception série de chaînes de caractères
Matériel
  • Materiel de cours imprimé, pratique et permettant de prendre des notes
  • Exemples de code, source et solution des travaux pratiques
  • Un PC par binôme
  • Les travaux pratiques sont fait sur une carte à base de microcontrôleur STM32 en utilisant l'IDE gratuit System Workbench for STM32
Pré-requis

Introduction au C++ pour l'industrie
  • Introduction à la programmation orientée objet
  • historique et définition
  • la couche C+ : passage du C vers le C++
Exercise :  Comprendre l'encodage des noms de fonctions
  • spécification Embedded C++ ( EC++)
  • comment écrire du code optimisé pour l'embarqué
Exercise :  Function étendues en ligne
Exercise :  Gestion des variables volatiles
Le C++ et l'embarqué
  • les outils de cross développement pour l'embarqué
  • maîtriser les différentes sections mémoire des applications embarquées
  • analyser les fichiers d'organisation de mapping mémoire
  • Programmation objet en C++
    • Encapsulation
    • Classes et objets
    • Attributs et fonctions membres
    • Construction et destruction d'objets
    • Paramètres de construction
    • Constructeur de copie
    • Composition et la containérisation d'objets
    • Visibilité et portée des déclarations
Exercise :  Déclaration de classes et de méthodes
Exercise :  Les constructuers par défaut, de copie et paramètrisés
Exercise :  Comprendre les différences entre composition, aggregation et héritage
  • Surcharge des opérateurs
    • Optimisation des passages d'objets en paramètres
    • Surcharge des opérateurs par des fonctions membres
    • Surcharge des opérateurs par des fonctions amies
    • Surcharge des opérateurs de gestion mémoire
Exercise :  L'opérateur d'affectation
Exercise :  Gestion de FIFOs par surcharge des operateurs ‘<<’ et ‘>>’
  • Objets ROMables et persistants
    • Objets constants et partiellement constants
    • Objets persistants
    • Objets ROMables
Exercise :  Création d'objets constants, mutables, persistants et ROMables
  • Objets génériques et templates
    • Classes et fonctions génériques
    • Surcharge de templates
    • Spécialisation de templates
    • STL (Standard Template Library)
    • Utilisation de templates dans l'embarqué
Exercise :  Définition de FIFOs génériques
Les techniques avancées du C++
  • le flux d'E/S
    • flux standard du langage C++
    • flux standard des librairies C++ standard
    • technique de redirection des flux d'E/S standard par amitié
Exercise :  Redéfinition des opérateurs ‘<<’ et ‘>>’ lire/écrire des objets depuis un flot d'entrées-sorties
  • objets polymorphes
  • objets virtuels et classes abstraites
  • spécialisation des objets par héritage simple
    • construction d'objets dérivés
    • règle de contrôle d'accès des objets hérités
    • spécialisation des objets par Héritage multiple
    • résolution des conflits par opérateur de résolution de portée
    • intérêt de l'héritage virtuel
Exercise :  Comprendre l'utilisation des méthodes virtuelles en dérivant une classe Device générique
Exercise :  Comprendre l'héritage multiple et les bases virtuelles
  • sécurité grâce aux exceptions dans l'embarqué
    • mots clefs du langage et leur mise en œuvre
    • lancement, capture et traitement d'exceptions
    • redéclenchement d'exception
    • spécification d'exceptions
    • traitement d'exceptions inattendues
    • objets exceptions de la librairie standard C++
Exercise :  Gestion des errors avec des exceptions
Exercise :  Gestion d'exceptions inattendues
C++ dans les systèmes embarqués
  • Mécanismes des interruptions vectorisées et autovectorisées
  • contrôleur d'interruption du Cortex-M3
  • Timer du Cortex-M3
  • UART du STM32
  • Classes interruption
  • Classe UART
Exercise :  Développement d'un gestionnaire d'interruptions en C++
Exercise :  Développement d'un contrôleur d'UART en C++