This training aims to present C++ as the natural extension of C for object-oriented embedded system development. Because C++ encompasses C, this course guides you from C to C++ in a logical manner while exploring the underlying implementation mechanics of C++. Understanding these internals is particularly crucial when deploying C++ within resource-constrained embedded environments. With the C++ standard recently undergoing significant updates through C++11 and the upcoming C++14 revisions, this course focuses on features introduced by these changes that are highly beneficial, such as high-performance memory management, concurrency in multicore architectures, and low-level bare-metal hardware programming.
OBJECTIVES AND BENEFITS
The primary goal of this course is to enable you to utilize C++ in a manner that adheres to best practices and correctness.
- Present C++ as an object-oriented alternative for embedded systems
- Highlight the similarities and differences between C++ and C
- Understand various memory management techniques, with a focus on move semantics introduced in C++11
- Examine the underlying machine code generation to understand how different C++ paradigms operate at the hardware level
- Utilize templates to create type-safe, high-level abstractions for bare-metal programming, including memory-mapped I/O and interrupts, particularly leveraging variadic templates from C++11
- Explore design patterns specifically applicable to embedded contexts
- Participate in practical exercises to reinforce key concepts
TARGET AUDIENCE
This training is designed for C++ programmers looking to transition to or expand their use of C++ within embedded system projects.
REQUIRED PREREQUISITES
Participants are expected to have foundational knowledge of C++ programming, equivalent to our courses “C++ – Level 1” and “C++ Level 2 – Introducing C++11”.
PRACTICAL EXERCISES
Throughout the training, you will apply the concepts learned through a series of hands-on exercises. We will utilize the open-source and free Integrated Development Environment (IDE) provided by Eclipse.
Daha Fazla...