Course Outline
- Understanding Embedded Systems
- Basic Definition
- Key Historical Milestones
- Defining Characteristics
- Rationale for Using C++
- Comparison with C
- C as a Near-Subset of C++
- Performance Considerations
- Additional “Free” Functionality
- Reasons to Avoid C++
- Classes in C++
- Member Variables
- Instance Variables
- Class Variables
- Member Functions
- Instance Functions
- Class Functions
- Implicitly Defined Methods
- Constructors
- Initialisation
- Delegation
- Destructors
- Copy Assignment Operator
- Constructors
- Move Semantics – Eliminating Unnecessary Deep Copies
- Structures in C++
- Packages and Namespaces
- Member Variables
- Inheritance
- Overview
- Implementation Details
- Performance Impact
- Multiple Inheritance
- Virtual Inheritance
- Polymorphism
- Overview
- Virtual Functions
- Virtual Destructors
- Implementation Mechanics
- Runtime Type Information (RTTI)
- Performance Analysis
- Templates
- Overview
- Function Templates
- Class Templates
- Variadic Templates
- Code Bloat Issues
- Implementation Strategies
- Template Meta-Programming
- Choosing between Templates and Inheritance
- Error Handling
- Exception Handling Mechanisms
- Performance Concerns
- Implementation Details
- Inline Code
- Application Scenarios
- Strategic Approaches
- System Start-up
- System Initialisation Process
- The C Component
- The C++ Component
- Standard Library
- Standard Template Library (STL)
- iostream Library
- Key STL Extensions from C++11:
- Move Semantics
- Variadic Templates
- Concurrency Support
- Memory Management
- The C++ Memory Model
- stdint Types
- Atomic Types and Operations
- Management Strategies
- Variable Handling
- Placement New
- Custom User-Defined Memory Management
- The C++ Memory Model
- C/C++ Interoperability
- Name Mangling
- Static Initialisation
- Dynamic Memory Allocation
- Struct Layout
- POD – Plain Old Data Types
- Design Patterns
- RAII – Resource Acquisition Is Initialization
- Memory-Mapped I/O
- Interrupt Handling
- Static Object Initialisation
Requirements
No specific prior requirements are necessary to attend this course.
Custom Corporate Training
Training solutions designed exclusively for businesses.
- Customized Content: We adapt the syllabus and practical exercises to the real goals and needs of your project.
- Flexible Schedule: Dates and times adapted to your team's agenda.
- Format: Online (live), In-company (at your offices), or Hybrid.
Price per private group, online live training, starting from 4800 € + VAT*
Contact us for an exact quote and to hear our latest promotions
Testimonials (3)
Detailed explanation, re-iteration of points in a quite subtle way that really drove the knowledge home very well. Rod's willingness to double-check the odd obscure question that we rasied, to be sure that his answers were 100% right. Also, his interest in discussing the pros & cons of alternate coding styles so that we learnt not only how to use C++ in our intended way, but why it should be done that way.
Nick Dillon - cellxica Ltd
Course - Using C++ in Embedded Systems - Applying C++11/C++14
I enjoyed the time allocated for us to solve the exercices. This was very useful as it allowed us to spend some time thinking about our solutions and implementing them.
Valeriu - Siemens
Course - Using C++ in Embedded Systems - Applying C++11/C++14
The details on how compiler behaves depending on to the syntax usage. The "Quiz" sections are very stimulating