This course introduces C++ as the natural evolution of C for object-oriented embedded system development. Since C++ is built upon C, this training guides participants from C to C++ seamlessly, providing insight into the underlying implementation of C++. Understanding this foundation is crucial when applying C++ in resource-constrained embedded environments. With the C++ standard undergoing significant updates, specifically with the introduction of C++11 and the upcoming C++14, this course focuses on features from these revisions that are particularly beneficial, such as high-performance memory management, concurrency in multicore environments, and bare-metal programming close to the hardware.
GOAL/BENEFITS
The primary objective of this class is to ensure you can utilize C++ in an embedded context "correctly" and effectively.
- Introduce C++ as an object-oriented alternative in the embedded system landscape
- Highlight the similarities and differences between C and C++
- Understand various memory management strategies, with a focus on move semantics introduced in C++11
- Examine the internal workings to see how different C++ paradigms translate to machine code
- Utilize templates to create type-safe, high-level abstractions for bare-metal, hardware-proximate programming—such as memory-mapped I/O and interrupts—leveraging variadic templates from C++11
- Present useful design patterns specifically applicable to embedded contexts
- Include practical exercises to reinforce key concepts
AUDIENCE/PARTICIPANTS
This training is designed for C++ programmers who wish to begin applying C++ in embedded system environments.
PREVIOUS KNOWLEDGE
The course assumes basic proficiency in C++ programming, equivalent to completion of 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. We will use the open-source and free integrated development environment provided by Eclipse.
Read more...