Education (depraced!) > Effective C++ in an Embedded Environment

Effective C++ in an Embedded Environment


Date: 18 May 2011 | Posted by: bubbagump
Effective C++ in an Embedded Environment

Presentation Materials: Effective C++ in an Embedded Environment





Detailed topic outline

* Overview of "Embedded C++."
* C++ under the hood:
o The efficiency philosophy behind C++
o Detailed examination of virtual function implementation under single and multiple inheritance
o Overview of how all other language features are implemented
o Causes of code bloat and how to address them
o The crucial role of inlining
* Three approaches to interface-based programming:
o Virtual functions and runtime polymorphism
o Separate compilation and link-time polymorphism
o Templates and compile-time polymorphism
* Applying C++ in Embedded Systems:
o Rules for what can and cannot be ROMed
o Memory management:
+ Issues: speed, fragmentation, leaks, exhaustion
+ Static allocation
+ Dynamic allocation:
# Writing custom versions of new and delete
# LIFO allocation
# Pool allocation
# Block allocation
# Other options: regions and variable-sized allocators
o Modeling memory-mapped IO (MMIO):
+ Putting objects at specific addresses:
# Placement new
# reinterpret_cast
# Compiler extensions
+ Modeling MMIO registers directly vs. indirectly
# Creating shadow registers
+ Preventing common usage errors
+ Generalizing via templates
o Implementing callbacks for C APIs (e.g., ISRs):
+ C++ functions C APIs can call
+ Linkage and exception issues
+ Approaches and their pros/cons:
# Using virtual functions
# Using std::tr1::function objects
o Overview of TR1 and Boost
o Interesting template applications:
+ Generating cost-free type-safe wrappers for void*-based code
+ Performing compile-time dimensional unit compatibility analysis
+ Expressing binary literals
+ Specifying finite state machines (FSMs)
* Considerations for safety-critical and real-time systems
* Sources for Additional Information




NO MIRRORS
See full article