This training introduces C++ as a powerful extension of C for object-oriented embedded system development. Because C++ encompasses C, the course naturally guides you from C to C++, delving into the underlying implementation details of C++. This understanding is particularly crucial when deploying C++ in resource-constrained embedded environments. With the C++ standard recently undergoing a major update known as C++11, and C++14 approaching, this course focuses on features introduced in these revisions that are highly beneficial for embedded development, such as high-performance memory management, concurrency in multicore environments, and bare-metal programming close to the hardware.
GOALS AND BENEFITS
The primary objective of this course is to enable you to utilize C++ correctly in embedded contexts.
- Introduce C++ as an object-oriented alternative for embedded systems.
- Highlight the similarities and differences between C and C++.
- Understand various memory management strategies, including the move semantics introduced in C++11.
- Examine the machine code generated by different C++ paradigms to understand their practical impact.
- Utilize templates to create type-safe, high-level abstractions for bare-metal, hardware-close programming, such as memory-mapped I/O and interrupts, with a focus on the variadic templates introduced in C++11.
- Present useful design patterns specifically applicable to embedded environments.
- Provide practical exercises to reinforce key concepts.
AUDIENCE AND PARTICIPANTS
This training is designed for C++ programmers who wish to begin applying C++ within embedded system contexts.
PREREQUISITES
The course assumes 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 use the open and free integrated development environment provided by Eclipse.
Read more...