This training program aims to present C++ as the natural evolution of C for object-oriented embedded system development. Since C++ is fully compatible with C, this course guides participants smoothly from C to C++ while exploring the underlying mechanisms of how C++ is executed. This insight is particularly valuable when applying C++ in resource-constrained embedded environments. With the C++ standard recently undergoing a significant revision known as C++11, and a subsequent update, C++14, approaching, this course covers key features introduced by these updates that are highly beneficial in embedded contexts, such as high-performance memory management, concurrency using multicore processors, and low-level hardware programming.
GOAL/BENEFITS
The primary objective of this course is to enable you to use C++ in a 'correct' and effective manner.
- Introduce C++ as an object-oriented alternative within the embedded systems domain.
- 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.
- Explore the underlying implementation to understand how different C++ paradigms translate into machine code.
- Leverage templates to create type-safe, high-level abstractions for low-level hardware programming (including memory-mapped I/O and interrupts), particularly utilizing variadic templates introduced in C++11.
- Present useful design patterns applicable to embedded systems.
- Include practical exercises to reinforce learning.
AUDIENCE/PARTICIPANTS
This training is designed for C++ programmers who wish to begin using C++ in an embedded systems context.
PREVIOUS KNOWLEDGE
The course assumes basic proficiency in C++ programming, equivalent to our 'C++ – Level 1' and 'C++ Level 2 – Introducing C++11' trainings.
PRACTICAL EXERCISES
Throughout the training, you will practice the presented concepts through a series of exercises. The development will take place using the free and open-source integrated development environment provided by Eclipse.
Read more...