Ce cours a pour objectif de présenter C++ comme l'extension commune de C pour le développement de systèmes embarqués orientés objet. Puisque C++ englobe C, cette formation nous conduit de C à C++ de manière naturelle, tout en explorant les mécanismes sous-jacents de son implémentation. Cette compréhension est particulièrement précieuse lorsqu'on utilise C++ dans un environnement embarqué aux ressources limitées. La norme C++ a récemment fait l'objet d'une révision majeure, connue sous le nom de C++11, et une nouvelle révision, C++14, est en cours. Ce cours aborde les sujets introduits par ces révisions qui sont particulièrement utiles, tels que la gestion de la mémoire haute performance, la prise en compte de l'environnement multicœur pour la concurrence, ainsi que la programmation proche du matériel (bare-metal).
OBJECTIF/AVANTAGES
L'objectif principal de ce cours est que vous soyez capable d'utiliser C++ de manière « correcte ».
- Présenter C++ comme une alternative orientée objet dans le contexte des systèmes embarqués
- Montrer les similarités et les différences avec le langage C
- Comprendre les différentes stratégies de gestion de la mémoire, en particulier la sémantique de mouvement (move semantics) introduite avec C++11
- Explorer les mécanismes sous-jacents et comprendre comment les différents paradigmes de C++ se traduisent en code machine
- Utiliser les gabarits (templates) pour obtenir des abstractions de haut niveau sûres au niveau des types, adaptées à la programmation proche du matériel – y compris l'E/S mappée en mémoire et les interruptions – en mettant l'accent sur les gabarits à nombre variable d'arguments (variadic templates) introduits avec C++11
- Proposer quelques patrons de conception (design patterns) particulièrement applicables dans un contexte embarqué
- Proposer quelques exercices pour mettre en pratique certains concepts
PUBLIC/CIBLE
Ce cours s'adresse aux programmeurs C++ qui souhaitent commencer à utiliser C++ dans un contexte de systèmes embarqués.
CONNAISSANCES PRÉALABLES
Le cours suppose des connaissances de base en programmation C++, correspondant à nos formations « C++ – Niveau 1 » et « C++ Niveau 2 – Introduction à C++11 ».
EXERCICES PRATIQUES
Pendant la formation, vous pratiquerez les concepts présentés à travers une série d'exercices. Nous utiliserons l'environnement de développement intégré (IDE) open source et gratuit d'Eclipse.
En savoir plus...