This training aims to introduce C++ as the natural evolution of C for object-oriented embedded system development. Since C++ encompasses C, this course guides you smoothly from C to C++, revealing the underlying mechanics of C++ implementation. This insight is particularly valuable when deploying C++ in resource-constrained embedded environments. With the C++ standard recently undergoing a major revision known as C++11, and C++14 following closely, this course covers new features that are especially beneficial, such as high-performance memory management, concurrency in multicore environments, and bare-metal programming close to the hardware.
GOAL/BENEFITS
The primary objective of this course is to enable you to use C++ in a 'correct' and effective manner.
- Introduce C++ as an object-oriented language alternative within the embedded system context
- Highlight the similarities and differences between C++ and C
- Understand various memory management strategies, particularly the move semantics introduced in C++11
- Examine the internals to understand how different C++ paradigms translate into machine code
- Utilize templates to create type-safe, high-level abstractions for bare-metal, hardware-close programming, including memory-mapped I/O and interrupts, with a focus on variadic templates introduced in C++11
- Present useful design patterns especially applicable in embedded contexts
- Include exercises to practice key concepts
AUDIENCE/PARTICIPANTS
This training is designed for C++ programmers who wish to begin using C++ in embedded system environments.
PREVIOUS KNOWLEDGE
The course requires basic knowledge of C++ programming, equivalent to our 'C++ – Level 1' and 'C++ Level 2 – Introducing C++11' trainings.
PRACTICAL EXERCISES
Throughout the training, you will practice the presented concepts through a series of exercises. We will use the open and free integrated development environment provided by Eclipse.
Read more...