This training aims to introduce C++ as a natural extension of C for object-oriented embedded system development. Since C++ encompasses C, the course guides participants from C to C++ in a seamless manner, exploring the underlying implementation mechanisms. This insight is particularly valuable when applying C++ in resource-constrained embedded environments. With the C++ standard undergoing significant revisions—specifically C++11, with C++14 following shortly—this course covers essential new features such as high-performance memory management, concurrency in multicore environments, and bare-metal, hardware-proximate programming.
GOAL/BENEFITS
The primary objective of this class is to enable you to use C++ in a "correct" manner.
- Introduce C++ as an object-oriented language alternative within the context of embedded systems
- Highlight the similarities and differences between C++ and C
- Understand various memory management strategies, with a focus on the move semantics introduced in C++11
- Explore the underlying mechanisms to understand how different C++ paradigms translate into machine code
- Utilize templates to create type-safe, high-level abstractions for bare-metal, hardware-proximate programming (including memory-mapped I/O and interrupts), particularly leveraging variadic templates introduced in C++11
- Present useful design patterns, especially those applicable in embedded contexts
- Include practical exercises to reinforce key concepts
AUDIENCE/PARTICIPANTS
This training is designed for C++ programmers who wish to begin using C++ in an embedded system context.
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
During 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...