Course Outline
- Fundamentals of Embedded Systems
- Definition Overview
- Historical Development
- Key System Attributes
- Rationale for Utilizing C++
- Evaluation Against C Standards
- C as a Subset of C++ – Considerations
- Computational Efficiency
- Enhanced Capabilities
- Limits of C++ Adoption
- Object-Oriented Structures
- Data Members
- Instance Variables
- Class-Level Variables
- Functional Members
- Instance Methods
- Class-Level Methods
- Generated Functions
- Constructors
- Object Initialization
- Constructor Delegation
- Destructors
- Copy Assignment Operators
- Constructors
- Move Semantics – Optimization of Resource Transfer
- C++ Struct Definitions
- Naming Conventions and Namespaces
- Data Members
- Inheritance Frameworks
- Core Concepts
- Practical Application
- Performance Implications
- Multi-Level Inheritance
- Virtual Inheritance Protocols
- Polymorphic Behavior
- Foundational Principles
- Virtual Functions
- Virtual Destructors
- Execution Mechanics
- Runtime Type Identification (RTTI)
- System Impact Analysis
- Generic Programming Constructs
- Core Concepts
- Function Templates
- Class Templates
- Variadic Template Support
- Code Size Considerations
- Deployment Approaches
- Template Metaprogramming Techniques
- Comparative Analysis: Templates versus Inheritance
- Error Management Protocols
- Exception Handling Mechanisms
- Performance Constraints
- Implementation Methodologies
- Inline Code Optimization
- Applicability Criteria
- Optimization Strategies
- System Initialization
- Boot Sequence Procedures
- C Runtime Initialization
- C++ Runtime Initialization
- Standard Library Integration
- Standard Template Library (STL)
- iStream I/O Libraries
- Significant Enhancements Introduced by C++11:
- Move Semantics Support
- Variadic Template Expansion
- Concurrency Features
- Memory Resource Control
- C++ Memory Architecture
- Standard Integer Types (stdint)
- Atomic Data Types and Operations
- Management Strategies
- Variable Storage Classes
- Placement New Operators
- Custom Memory Allocation Routines for government applications
- C++ Memory Architecture
- Cross-Language Interoperability
- Name Mangling Protocols
- Static Initialization Processes
- Dynamic Memory Allocation
- Structure Composition
- POD – Plain Old Data Specifications
- Architectural Design Patterns
- RAII – Resource Acquisition Is Initialization
- Memory-Mapped Input/Output Interfaces
- Interrupt Handling Procedures
- Static Object Lifecycle Management
Requirements
Participants are not required to meet any prerequisite criteria to enroll in this course for government personnel.
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