Efficient Use of C++ in Embedded Systems

Who should attend?

Software developers who want to extend their existing C++ knowledge, acquired in non-embedded environments, for use in embedded systems.

Pre-requisites:

A good working knowledge of C++.

Duration:

3 days

Course Description:

Using C++ efficiently in embedded systems requires a detailed understanding of the diverse features of the language and the amount of resources they need. This course examines the individual language features of C++ based on descriptive examples with respect to memory and runtime requirements, the most important criteria in embedded and realtime systems. Problems identified by this evaluation are discussed and possible solutions are shown. The results of this analysis build a solid foundation for the choice of the most advantageous implementation for the application case under consideration. As a second focus this course illustrates how hardware devices can be mapped into objects thus allowing a seamless integration in embedded object oriented applications. The associated practical exercises are performed on an ARM-based target board.


Course Outline:

Assessment of the Language Features

  • Object model
  • Object creation and deletion
  • Temporary Objects
  • Inheritance
  • Virtual functions
  • Dynamic memory management

Mapping Hardware Devices into Objects

  • Traditional solutions
  • Struct-based solution
  • Hardware device as a C++ object
  • Interrupt handling

Practical Exercises