This training programme is designed to introduce C++ as the natural extension of C for object-oriented embedded system development. Because C++ encompasses C, the course guides participants from C to C++ in a logical progression, exploring the internal implementation of C++. This understanding is particularly valuable when applying C++ in resource-constrained embedded environments. With the C++ standard recently undergoing significant revisions—specifically C++11 and the upcoming C++14—this course covers key features introduced in these updates. Topics include high-performance memory management, concurrency in multicore environments, and low-level bare-metal programming close to the hardware.
GOAL/BENEFITS
The primary objective of this course is to equip you with the ability to use C++ 'correctly' and effectively.
- Introduce C++ as an object-oriented alternative for embedded system contexts.
- Highlight the similarities and differences between C++ and the C language.
- Understand various memory management strategies, with a focus on move semantics introduced in C++11.
- Look under the hood to understand how different C++ paradigms translate to machine code.
- Utilize templates to create type-safe, high-level abstractions for bare-metal, hardware-close programming—such as memory-mapped I/O and interrupts—particularly leveraging variadic templates introduced in C++11.
- Present useful design patterns specifically applicable to embedded contexts.
- Provide practical exercises to reinforce key concepts.
AUDIENCE/PARTICIPANTS
This training is tailored 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 trainings 'C++ – Level 1' and 'C++ Level 2 – Introducing C++11'.
PRACTICAL EXERCISES
Throughout the training, you will practice the presented concepts through a series of exercises. We will utilize the open and free integrated development environment provided by Eclipse.
Read more...