This training introduces C++ as the natural evolutionary extension of C for developing object-oriented embedded systems. Because C++ builds upon C, this course guides learners from C to C++ in a logical sequence while exploring the underlying implementation mechanisms. Understanding these mechanics is particularly crucial when utilizing C++ in embedded environments with limited resources. The C++ standard has recently undergone significant updates with the introduction of C++11, and is continuing to evolve with C++14. This course focuses on 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 programming for bare-metal hardware.
GOAL/BENEFITS
The primary objective of this course is to enable you to apply C++ in a "correct" and effective manner.
- Present C++ as an object-oriented alternative for embedded system development
- Highlight both the similarities and differences between C++ and C
- Understand various memory management techniques, 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
- Leverage templates to create type-safe, high-level abstractions for bare-metal programming, including memory-mapped I/O and interrupts, particularly using variadic templates from C++11
- Explore design patterns that are especially applicable to embedded contexts
- Participate in practical exercises to reinforce key concepts
AUDIENCE/PARTICIPANTS
This training is designed for C++ programmers who wish to begin applying C++ in embedded system projects.
PREVIOUS KNOWLEDGE
Participants are expected to have foundational knowledge of C++, equivalent to that covered in our "C++ – Level 1" and "C++ Level 2 – Introducing C++11" courses.
PRACTICAL EXERCISES
Throughout the training, you will practice the concepts presented through a series of exercises. We will utilize the open-source, free Integrated Development Environment (IDE) from Eclipse.
Read more...