This training programme aims to introduce C++ as the standard extension for implementing object-oriented development in embedded systems. Because C++ encompasses C, this course facilitates a smooth transition from C to C++, while also exploring the underlying implementation mechanisms of C++. This understanding is particularly crucial when deploying C++ within the resource-constrained environments typical of embedded systems. The C++ standard has recently undergone a significant update, known as C++11, with C++14 following closely. This course covers key features introduced by these revisions that are highly beneficial, such as high-performance memory management, concurrency in multicore environments, and bare-metal programming that interacts closely with the hardware.
GOALS AND BENEFITS
The primary objective of this course is to equip you with the skills to use C++ in a 'correct' and effective manner.
- Position C++ as an object-oriented language alternative within the context of embedded systems
- Highlight the similarities and differences between C and C++
- Understand various memory management strategies, 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, hardware-proximate programming (such as memory-mapped I/O and interrupts), including the use of variadic templates introduced in C++11
- Explore useful design patterns, particularly those applicable to embedded contexts
- Engage in practical exercises to reinforce conceptual understanding
AUDIENCE AND PARTICIPANTS
This training is designed for C++ programmers who wish to begin applying C++ in an embedded systems context.
PREVIOUS KNOWLEDGE
Participants are expected to have a foundational understanding 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 concepts presented through a series of exercises. We will utilise the open-source and free integrated development environment provided by Eclipse.
Read more...