This training introduces C++ as a natural extension of C for object-oriented embedded system development. Since C++ encompasses C, the course provides a smooth transition from C to C++, offering an inside look at how C++ is implemented—a crucial understanding for resource-constrained embedded environments. With the C++ standard undergoing significant updates through C++11 and the forthcoming C++14, this course covers key features such as high-performance memory management, concurrency in multicore environments, and bare-metal programming close to the hardware.
GOAL/BENEFITS
The primary objective is to enable participants to use C++ correctly and effectively.
- Present C++ as an object-oriented alternative in embedded system contexts
- Highlight the similarities and differences between C++ and C
- Understand various memory management strategies, particularly the move semantics introduced in C++11
- Gain insight into how different C++ paradigms translate into machine code
- Utilize templates to create type-safe, high-order abstractions for bare-metal, hardware-close programming, including memory-mapped I/O and interrupts, with a focus on the variadic templates in C++11
- Explore useful design patterns specifically applicable to embedded systems
- Complete practical exercises to reinforce key concepts
AUDIENCE/PARTICIPANTS
This training is designed for C++ programmers looking to begin using C++ in embedded system contexts.
PREVIOUS KNOWLEDGE
Participants need basic C++ programming knowledge, equivalent to our "C++ – Level 1" and "C++ Level 2 – Introducing C++11" courses.
PRACTICAL EXERCISES
The training includes practical exercises to apply the presented concepts. We will use the open-source, free Eclipse integrated development environment.
Read more...