This training programme aims to present C++ as the natural extension of C for object-oriented embedded system development. Since C++ is built upon C, this course facilitates a smooth transition from C to C++, providing an in-depth look at the underlying implementation mechanisms of C++. This insight is particularly crucial when deploying C++ within the constrained resources of an embedded environment. The C++ standard has recently undergone significant updates with the introduction of C++11, and C++14 is now emerging. This course covers key features introduced in these revisions that are highly beneficial for embedded development, such as high-performance memory management, concurrency in multicore environments, and low-level, hardware-adjacent programming.
GOAL/BENEFITS
The primary objective of this course is to ensure that you can utilize C++ in a "correct way" within embedded contexts.
- Present C++ as an object-oriented alternative for embedded systems.
- Highlight the similarities and differences between C++ and C.
- Understand various memory management strategies, with a focus on move semantics introduced in C++11.
- Examine the underlying implementation to see 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—especially leveraging variadic templates from C++11.
- Explore useful design patterns specifically applicable to the embedded domain.
- Engage in practical exercises to reinforce key concepts.
AUDIENCE/PARTICIPANTS
This training is designed for C++ programmers who wish to begin applying C++ in an embedded system context.
PREVIOUS KNOWLEDGE
The course requires fundamental knowledge of C++ programming, equivalent to our "C++ – Level 1" and "C++ Level 2 – Introducing C++11" courses.
PRACTICAL EXERCISES
Throughout the training, you will practice the presented concepts through a series of exercises. We will use the open-source Integrated Development Environment (IDE) from Eclipse.
Read more...