This training intends to introduce C++ as the common extension of C when applying object-oriented embedded system development. Since C++ encloses C, this training takes us from C to C++ in a natural way, and looks under the hood of how C++ is implemented. This is especially valuable to comprehend when applying C++ in an embedded resource limited environment. The C++ standard has recently been undergoing a major revision, a.k.a. as C++11, and a new one is on its way, C++14. This course addresses subjects brought in with these revisions that are especially useful like high performance memory management, concurrency making use of a multicore environment, and bare-metal close to the hardware programming.
The major objective of this class is that you shall be able to use C++ in a “correct way”.
- Introduce C++ as an object oriented language alternative in an embedded system context - Show the similarities ‑ and differences ‑ with the C language - Comprehend different memory management strategies – especially the move semantics introduced with C++11 - Look under the hood and understand what different paradigms in C++ leads to in machine code - Use templates to achieve type safe high order abstractions for bare-metal close to the hardware programming – memory mapped I/O as well as interrupts – especially the variadic templates introduced with C++11 - Provide some useful design patterns especially applicable in an embedded context - A few exercises in order to practice some concepts
This training is aimed C++- programmers who intend to start using C++ in an embedded system context.
The course requires basic knowledge in C++ programming, corresponding to our trainings ”C++ – Level 1” and ”C++ Level 2 – Introducing C++11”.
During the training you will practice the presented concepts in a number of exercises. We will use the open and free integrated development environment from Eclipse