For more information contact us
Phone:
+1-425-748-5018
Fax: +1-425-644-2185
TrainingUSA@selagroup.com
Coming courses
Register/More info
More courses from
C++, OO, UML
Clean Code Workshop
C++ Debugging
Effective C++ in RT/Embedded Systems
Advanced Object-Oriented Software Development using ACE
Post Modern C++
Test Driven Development for C++ Developers
Design Patterns in C++
Modern C++
Object Orient Introduction
C++\CLI programming in the .NET environment
Object Oriented Programming in C++
Object Oriented Analysis / Design using UML
Post Modern C++ 2
C Programming
Advanced C Programming
Boost C++
C2RT - Version: 1.1
Effective C++ in RT/Embedded Systems
3 days course
Description
Embedded/Real-Time systems are characterized by memory and performance constraints. Deep understanding of the C++ constructs and mastering the language for efficient writing is therefore vital, and may be even crucial in these systems. The course reveals the hidden overheads and strengths of the language and its mechanisms. The course presents the capabilities, limitations, hazards, and tips and tricks, for better performance and better utilization of memory capabilities of the language, for you to use as an expert programmer in an Embedded/Real-Time environment. The course will also present performance issues associated with the code generated by typical C++ compilers, and various optimization issues. Some benchmarks will be presented as well, to prove and illustrate the improvements that can be made in a project to achieve best performance and memory results.
Intended audience
The course is intended for experienced C++ programmers who wish to better understand the internal structures and mechanisms for improved utilization of the language’s capabilities and strengths in an Embedded/Real-Time environment. For these programmers a deep understanding of the language and its constructs is vital for the success of their project.
Prerequisites
Familiarity with the Standard Template Library (STL).
At least one year experience programming in RT
Objectives
The participant will understand the costs of using various constructs of C++
The participant will be able better utilize the strengths of the language
The participant will better understand its weaknesses
The participant will be exposed to issues related to optimizing a system and exploring the system from a memory and performance perspective
The participants will also acquire the tools to benchmark a compiler, tools which are very important for making the right decisions when starting to work in a new environment.
Topics
Introduction to OO Development for Embedded/RT Systems
O.O. and Embedded/RT systems
C++ and Embedded/RT systems
Pros/Cons and more
Memory Layout and Costs
Object based C++, OO C++
Class: empty, with data members, with static members
In single/multiple/virtual inheritance
Per class/per instance overheads
Run-Time Considerations
Tools for exploring your system
Enough Assembly to survive
Map files
Performance costs
For information hiding
Trivial class, Complex class
Default methods and default behavior
Overriding defaults - the impact
RTTI overheads
Dynamic binding vs. Static binding
The impact and how to accelerate
Language Level Optimizations
startup code
Inlining
Virtual vs. Inline – Can they coexist?
Temporaries
Locality
RT Memory Management
Stack vs. Heap
Managing your own memory
Operator new and new operator
Managing the heap - overloading operator new
Benchmarking of performance
Templates
Using Templates in Embedded/RT
Function objects
Specialization
Class template
Templates arguments
The C++ standard library
Namespace std
The class string
Wide character support
Understanding the cost
STL
Containers
Iterators
Container adaptors
Algorithms
Ranges
Debugging Issues
Statics – Order of initialization
Tips & tricks
Related courses
RT Patterns
|
Real-Time UML
|
OOA/D UML
|
Real-Time Design Patterns
|
C2RT Course
I would like a representative to contact me regarding this activity
*
*
*
*
*