This training introduces C++ as the natural extension of C for object-oriented embedded system development. Since C++ encompasses C, the course guides participants from C to C++ in an intuitive manner, while also exploring the underlying implementation mechanisms. This knowledge is particularly valuable for effectively applying C++ in resource-constrained embedded environments. With the C++ standard recently undergoing a major revision known as C++11, and a new version, C++14, on the horizon, this course covers key features introduced by these updates. These include high-performance memory management, concurrency utilizing multicore architectures, and low-level, near-hardware programming.
GOAL/BENEFITS
The primary objective of this course is to equip you with the ability to use C++ correctly.
- Introduce C++ as an object-oriented alternative to C in the context of 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.
- Explore the inner workings to understand how different C++ paradigms translate into machine code.
- Utilize templates to create type-safe, high-level abstractions for near-hardware programming, such as memory-mapped I/O and interrupts, particularly leveraging variadic templates from C++11.
- Present useful design patterns especially relevant to embedded contexts.
- Include practical exercises to reinforce these concepts.
AUDIENCE/PARTICIPANTS
This training is designed for C++ programmers who wish to begin applying C++ in embedded system contexts.
PREVIOUS KNOWLEDGE
The course requires a foundational understanding of C++ programming, equivalent to our trainings titled 'C++ – Level 1' and 'C++ Level 2 – Introducing C++11'.
PRACTICAL EXERCISES
During 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...