+ +
- -
eLearning et Cours en ligne
Calendrier  Détails
Systèmes d'Exploitation
Calendrier  Détails
Calendrier  Détails
Calendrier  Détails
Calendrier  Détails
+ +
> >
- -

Dernières Nouvelles

Securing an Embedded Linux with System Workbench

Asymmetric Multi-Programming with System Workbench for Linux

ac6 >> ac6-training >> eLearning et Cours en ligne >> Langages >> Embedded C++ Programming Télécharger le catalogue Télécharger la page Ecrivez nous Version imprimable

oL3 Embedded C++ Programming

  • Master the C++ language
  • Use C++ Template (generic code) in Embedded Systems
  • Master the C++ Advanced aspects such as polymorphism, single and multiple inheritances.
  • Learn to redefine the C++ operators for dynamic memory allocation in embedded applications
  • Manage C++ exceptions for Secure Embedded applications
  • Use C++ objects to handle serial transmission / reception of character strings
  • Discover the modern C++ features
Labs are conducted QEMU ARM-based board
  • C programming skills (see our L2 course)
Course environment
  • Dematerialized course material (in English)
  • One Virtual Linux PC for two trainees.
  • Eclipse environment and GCC compiler
  • Downloadable preconfigured virtual machine
  • Total: 20 hours
  • 4 sessions, 5 hours each (excluding break time)
  • Some Labs must be completed after the session

First Session
Introduction to C++ for industrial systems
  • Introduction to object oriented programming
  • History and definition
  • Overview on C++98/C++03/C++11/C++14/ C++17
  • Modern C++ objectives
  • The C+ layer: switch from C to C++
  • Embedded C++
  • How to write optimized embedded code
Exercise :  Understand function mangling
Exercise :  Function inlining
Exercise :  Volatile variable handling
C++ and embedded systems
  • Object Oriented Programming in C++
    • Encapsulation
    • Classes and objects
    • Attributes and member functions
    • Object construction and destruction
    • Construction parameters
    • Copy constructor
    • Object composition and container
    • Scope qualifier operator
Exercise :  Declaring classes and methods
Exercise :  Working with default, copy and parameterized constructors
Exercise :  Understand the differences between composition and aggregation
Second Session
Operator Overloading
  • Optimizing parameter object passing
  • Overloading operators by member functions
  • Overloading operators by friend functions
  • Memory management operators overloading
Exercise :  The assignment operator
Exercise :  overloading operators
Simple Inheritance
  • Specialization by addition and substitution
  • Derivation and access rules
  • Construction during inheritance
  • Inheritance polymorphism
  • Virtual methods
Exercise :  Understand inheritance
Persistent and flashable objects
  • Constant and partially constant objects
  • Persistent objects
  • Flashable objects
Exercise :  Creating constant, mutable, persistent and ROMable objects
Enhancing security with exceptions
  • Launching, capturing and handling exceptions
  • Retriggering exception
  • Exceptions specifications
  • Handling unexpected exception
  • Exception objects of the C++ standard library
Exercise :  Handle errors using exceptions
Exercise :  Unexpected exceptions management
Third Session
C++ advanced techniques
  • Member pointers
  • Generic objects and templates
    • Classes and generic functions
    • Templates overloading
    • Specializing templates
    • STL (Standard Template Library)
    • Templates in embedded systems
  • Polymorphic objects
  • Virtual objects and abstract classes
  • Specializing objects by simple inheritance
    • Building derivate objects
    • Access control rules for inherited objects
    • Specializing objects by multiple inheritance
    • Conflicts resolution by scope operator
    • Virtual inheritance
Exercise :  Generic classes and functions
Exercise :  Understand virtual methods by subclassing a generic Device class
Exercise :  Understand multiple inheritance and virtual bases
Fourth Session
Introduction to modern C++
  • Overview
  • Storage class specifiers
  • Uniform initialization
  • C++ Named Requirements
  • Automatic type deduction
    • The auto keyword
    • The auto keyword as a return type from a function
    • Using auto for declaring function signatures
    • Automatic constant references
    • Forwarding references
    • Advantages of using auto in embedded systems
Exercise :  Using auto to declare variables
  • Enum class
  • override and final
  • Inline variables
  • nullptr
  • static_assert
  • noexcept
  • constexpr and if constexpr
  • decltype
  • Defaulted and deleted functions
    • Implementing a thread-safe singleton
Exercise :  Using modern C++ keywords
Exercise :  Create a singleton using modern C++
New functionalities
  • Structured binding
  • Range-based for loops
  • Nested namespaces and namespace aliases
  • Alignment
    • Alignas
    • Alignof
  • Move semantics and r-value references
    • Copy-constructing and Move-constructing
    • r-value references
    • Perfect forwarding
Exercise :  Using the new for loop syntax
Exercise :  Using std::tuple
Exercise :  Move semantics performance advantages on embedded systems