This training program aims to present C++ as the natural extension of C for object-oriented embedded system development. Because C++ encompasses C, the course guides participants through a seamless transition from C to C++, examining the internal mechanisms of C++ implementation. This insight is particularly crucial when deploying C++ in resource-constrained embedded environments. With the C++ standard undergoing significant updates with C++11 and the forthcoming 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 systems, and bare-metal programming close to the hardware.
OBJECTIVES AND BENEFITS
The primary goal of this course is to enable you to utilize C++ in a correct and effective manner.
- Introduce C++ as an object-oriented alternative within the context of embedded systems
- 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 underlying mechanics to understand how different C++ paradigms translate to machine code
- Utilize templates to create type-safe, high-level abstractions for bare-metal, hardware-proximate programming (including memory-mapped I/O and interrupts), particularly leveraging variadic templates from C++11
- Present useful design patterns applicable to embedded contexts
- Include practical exercises to reinforce concept understanding
TARGET AUDIENCE
This training is designed for C++ programmers who wish to begin applying C++ in embedded system projects.
PREREQUISITES
The course assumes fundamental knowledge of C++ programming, equivalent to completing 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 and free Eclipse integrated development environment.
Read more...