This training programme aims to present C++ as the natural evolution of C for object-oriented embedded system development. Because C++ encompasses C, the course guides participants from C to C++ in a logical manner, while also examining the underlying implementation mechanisms. Understanding these internals is particularly crucial when deploying C++ in resource-constrained embedded environments. The C++ standard has recently undergone significant updates with C++11, and C++14 is soon to follow. This course focuses on features introduced in these revisions that are highly beneficial, such as high-performance memory management, concurrency leveraging multicore architectures, and low-level, bare-metal programming close to the hardware.
GOAL/BENEFITS
The primary objective of this course is to enable you to apply C++ in a "correct" manner.
- Introduce C++ as an object-oriented alternative within the context of embedded systems.
- Highlight the similarities and differences between C++ and C.
- Understand various memory management strategies, with a specific focus on move semantics introduced in C++11.
- Examine the underlying mechanics to understand how different C++ paradigms translate into machine code.
- Utilize templates to create type-safe, high-order abstractions for bare-metal, hardware-close programming—including memory-mapped I/O and interrupts—particularly leveraging variadic templates from C++11.
- Present useful design patterns, especially those applicable in embedded contexts.
- Include exercises to practice the concepts covered.
AUDIENCE/PARTICIPANTS
This training is designed for C++ programmers who wish to begin using C++ in an embedded systems environment.
PREVIOUS KNOWLEDGE
The course requires fundamental knowledge of C++ programming, equivalent to our "C++ – Level 1" and "C++ Level 2 – Introducing C++11" training modules.
PRACTICAL EXERCISES
Throughout the training, you will practice the presented concepts through a series of exercises. We will utilize the open-source Eclipse integrated development environment (IDE).
Read more...