Course Outline
- Embedded Systems Fundamentals
- Basic Definition
- Key Historical Milestones
- Core Characteristics
- Rationale for Utilizing C++
- C Language Comparison
- C as a Subset of C++ – Approximate Equivalence
- Performance Implications
- Included Additional Functionality
- Limitations Regarding C++ Adoption
- Class Architecture
- Member Variables
- Instance Variables
- Class Variables
- Member Functions
- Instance Functions
- Class Functions
- Implicit Methods
- Constructor
- Initialization Process
- Delegation Mechanisms
- Destructor
- Copy Assignment Operator
- Constructor
- Move Semantics – Preventing Unnecessary Deep Copies
- struct Definition in C++
- Package and Namespace Management
- Member Variables
- Inheritance Structures
- Conceptual Introduction
- Implementation Details
- Performance Considerations
- Multiple Inheritance
- Virtual Inheritance
- Polymorphism Mechanisms
- Conceptual Introduction
- Virtual Function Implementation
- Virtual Destructor Usage
- Implementation Strategies
- Runtime Type Information (RTTI)
- Performance Analysis
- Template Systems
- Conceptual Introduction
- Function Templates
- Class Templates
- Variadic Templates
- Code Bloat Issues
- Implementation Methodologies
- Template Meta-Programming
- Template Versus Inheritance Analysis
- Error Handling Protocols
- Exception Handling
- Performance Constraints
- Implementation Approaches
- Inline Code Optimization
- Usage Criteria
- Strategic Approaches
- System Initialization
- System Boot Sequence
- C Language Components
- C++ Language Components
- Standard Library Integration
- Standard Template Library (STL)
- iostream Library
- Major Extensions Introduced in C++11:
- Move Semantics
- Variadic Templates
- Concurrency Support
- Memory Management Frameworks
- C++ Memory Model
- stdint Types
- Atomic Types and Operations
- Management Strategies
- Variable Handling
- Placement New Operator
- User-Defined Memory Control
- C++ Memory Model
- C and C++ Interoperability
- Name Mangling Mechanisms
- Static Initialization
- Dynamic Memory Allocation
- struct Content Definitions
- POD – Plain Old Data Type
- Design Pattern Application
- RAII – Resource Acquisition Is Initialization
- Memory-Mapped I/O
- Interrupt Handling
- Static Object Initialization
Requirements
There are no specific prerequisites required for attendance in this course.
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