Author(s): Various
Year: 2006
Contents
Foreword
Introduction
1 Scope
2 Normative References
3 Terms and definitions
4 Typical Application Areas
4.1 Embedded Systems
4.2 Servers
5 Language Features: Overheads and Strategies
5.1 Namespaces
5.2 Type Conversion Operators
5.3 Classes and Inheritance
5.4 Exception Handling
5.5 Templates
5.6 Programmer Directed Optimizations
6 Creating Efficient Libraries
6.1 The Standard IOStreams Library - Overview
6.2 Optimizing Libraries - Reference Example: "An Efficient Implementation of Locales and IOStreams"
7 Using C++ in Embedded Systems
7.1 ROMability
7.2 Hard Real-Time Considerations
8 Hardware Addressing Interface
8.1 Introduction to Hardware Addressing
8.2 The Interface for C and C++
8.3 The Interface for C++
Appendix A: Guidelines on Using the Interface
A.1 Usage Introduction
A.2 Using Hardware Register Designator Specifications
A.3 Hardware Access
Appendix B: Implementing the iohw Interfaces
B.1 General Implementation Considerations
B.2 Overview of Hardware Device Connection Options
B.3 Hardware Register Designators for Different Device Addressing Methods
B.4 Atomic Operation
B.5 Read-Modify-Write Operations and Multi-Addressing
B.6 Initialization
B.7 Intrinsic Features for Hardware Register Access
B.8 Implementation Guidelines for the Interface
Appendix C: A Implementation for the Interface
C.1 Implementation of the Basic Access Functions
C.2 Buffer Functions
C.3 Group Functionality
C.4 Remarks
Appendix D: Timing Code
D.1 Measuring the Overhead of Class Operations
D.2 Measuring Template Overheads
D.3 The Stepanov Abstraction Penalty Benchmark
D.4 Comparing Function Objects to Function Pointers
D.5 Measuring the Cost of Synchronized I/O
Appendix E: Bibliography