Effective C++ in an Embedded Environment
Category: Education (depraced!)
- views: 1 815
- date: 18 May 2011
- posted by: bubbagump

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
We need your support!
Make a donation to help us stay online
Bitcoin (BTC)
bc1q08g9d22cxkawsjlf8etuek2pc9n2a3hs4cdrld
Bitcoin Cash (BCH)
qqvwexzhvgauxq2apgc4j0ewvcak6hh6lsnzmvtkem
Ethereum (ETH)
0xb55513D2c91A6e3c497621644ec99e206CDaf239
Litecoin (LTC)
ltc1qt6g2trfv9tjs4qj68sqc4uf0ukvc9jpnsyt59u
USDT (ERC20)
0xb55513D2c91A6e3c497621644ec99e206CDaf239
USDT (TRC20)
TYdPNrz7v1P9riWBWZ317oBgJueheGjATm
Information |
|||
![]() |
Users of GUESTS are not allowed to comment this publication. | ||









