1111

 

 

Introduction:

This course introduces the C++ language for use on realtime and embedded applications. The first part of the course focuses on the language itself, highlighting areas of concern for real-time and embedded development. The latter part covers the application of C++ to real-time systems including interrupt handling and concurrency issues. If a C++ course does not cover these fundamental issues you may find you still have a lot to learn after the training.

Attendees perform hands on embedded programming, on target hardware, during course practicals. Approximately 50% of the course is given over to practical work.

Download PDF Download the PDF

An embedded awareness & advanced training Group

Overview:

A 5 day course covering C++ in general on the first three days and real-time issues on the last two. Fifty percent of the course is spent on practical work.

Course Objectives:

  1. • To provide an understanding of the essentials of the C++ programming language.

  2. • To give you practical experience of writing C++ for realtime & embedded systems.

  3. • To give you the confidence to apply these new concepts to your next real-time project.

Delegates will learn:

  1. • The core C++ syntax and semantics

  2. • How to access hardware in the language

  3. • How to program interrupt handlers in C++

  4. • About memory and performance issues associated with C++

  5. • How real-time operating systems affect the use of the language

Pre-requisites:

• A working knowledge of C

Who Should Attend:

The course is designed for real-time engineers who are embarking on a project using C++ for the first time. It is also targeted at developers currently reluctant to move to C++ from C as they believe it poses too great an overhead. This course will clearly demonstrate both the strengths and weaknesses of C++ versus C.

Duration:

Five days.

Course Materials:

• Training Handbook

Our other related Courses:

  1. • Real-Time Systems Design with UML 2.0

  2. • Embedded C Workshop

  3. • Fundamentals of Real-Time Operating systems

Course Workshop:

The course makes use of target hardware during the realtime practical exercises. The board targeted is the XSCALE 255 Board .

Course Outline:
Introduction to real-time systems

− What is a real-time and embedded computer system − The need for a rigorous development procedure
From C to C++

− Non object-oriented C++ enhancements to basic C − Conveniences of C++ over and above C

Introduction to Object Oriented (OO) Principles

− Key characteristics of OO development − OO techniques and the real-time software development process

Introduction to Classes

− Classes & class instances − Methods − Constructors & destructors

More on Classes

− Inlining member functions − const member functions − static class members and functions − arrays of classes − implementing object relationships

Inheritance

− Building class hierarchies − Dynamic binding for class methods, virtual functions − Polymorphism

Multiple inheritance (MI)

− MI and interfaces

Functions and Operators

− Class defined conversions − Overloading and function selection − Friend functions − Overloading operators − Dynamic memory allocation revisited

Exception Handling

− What are exceptions? − Throwing an exception − The try block − Catching an exception − Rethrowing exceptions − Catch all handlers − Exception specifications

Templates

− Introduce parameterised types and functions − Function templates − Class templates

The Standard Library

− Introducing the Standard Template Library

Software Structuring

− Structuring large scale software systems − Separate implementation from interface header files − Dealing with name conflicts − Linking with other languages

Embedded C++

− A summary of Embedded C++ − Embedded C++ features

Real-Time Specifics

− Low level facilities of C++ including: − Accessing hardware − Manipulating information at the bit level − Synchronising I/O with CPU via − Polling − Interrupts

Interrupt Programming

− Interrupt Service Routines in C++ − functional approach − class approach

Target Specific Considerations:

− Data types;
− Language features affecting portability;
− Non-standard C++ language features;
− Assembly language interfacing;
− Designing ROMable objects.

Concurrency:

− Concurrency;
− Scheduling strategies;
− Sharing resources in multi-tasking systems;
− Synchronizing tasks;
− Transferring data between tasks.

Copyright ® 2009 eACT Technologies Home