Course Outline
- What’s an Embedded System?
- Simple Definition
- Some Milestones
- Characteristics
- Why using C++?
- Comparison with C
- C: A subset of C++ – almost
- Performance
- Added “Free” Functionality
- Why not using C++?
- Classes
- Member Variables
- Instance variables
- Class variables
- Member Functions
- Instance functions
- Class functions
- Implicit Methods
- Constructor
- Initialization
- Delegation
- Destructor
- Copy assignment operator
- Constructor
- Move Semantics – avoiding unnecessary deep copy
- struct in C++
- Package/Namespace
- Member Variables
- Inheritance
- Introduction
- Realization
- Performance
- Multiple Inheritance
- Virtual Inheritance
- Polymorphism
- Introduction
- Virtual Function
- Virtual Destructor
- Implementation
- Runtime Type Information, RTTI
- Performance
- Templates
- Introduction
- Function Template
- Class Template
- Variadic Templates
- Code Bloat
- Implementation Strategies
- Template Meta Programming
- Template versus Inheritance?
- Error Handling
- Exception Handling
- Performance Issues
- Implementation
- Inline Code
- When to Use?
- Strategies
- Start-up
- System Start-up
- The C Part
- The C++ Part
- Standard Library
- Standard Template Library, STL
- iostream Library
- Major extensions made on STL due to C++11:
- Move semantics
- Variadic Templates
- Concurrency
- Memory Management
- The C++ Memory Model
- The stdint-types
- Atomic types and their operations
- Strategies
- Variables
- Placement new
- User Defined Memory Management
- The C++ Memory Model
- Interoperation between C and C++
- Name Mangling
- Static Initialization
- Dynamic Memory
- struct Contents
- POD – Plain Old Data type
- Design Patterns
- RAII – Resource Acquisition Is Initialization
- Memory-mapped I/O
- Interrupt
- Initialization of Static Objects
Requirements
There are no specific requirements needed to attend 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