Top Eurotraining Course Directory
 
 

Course Description



Quality labelled course   

C++ for Real-Time Developers


Date: from 18 Oct 2004 to 22 Oct 2004

Duration 5 day(s)

Language English    Venue Stockholm, Sweden

Country 

Description
This course introduces the C++ language for use on real-time 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 training.

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

Course Contents and Time Table
Workshop Agenda

* Introduction to real-time systems
o Understand what is meant by real-time and embedded computer systems;
o Highlight the characteristics that distinguish these systems from standard computer systems;
o Introduce the need for a rigorous development procedure.

* From C to C++
o To introduce the non object-oriented C++ enhancements to basic C
o Appreciable conveniences of C++ over and above standard C

* Introduction to Object Oriented Principles:
o Introduce the key characteristics of object oriented software development;
o Understand why object oriented techniques can improve the real-time software development process.

* Classes
o Classes & class instances
o methods
o constructors & destructors
o Inlining member functions
o const member functions
o static class members and functions
o arrays of classes
o implementing object relationships

* Inheritance:
o Use inheritance inheritance to build class hierarchies;
o Dynamic binding for class methods, virtual functions;
o Polymorphism.
o Use multiple inheritance (MI) to build class hierarchies

* Functions and Operators:
o Class defined conversions
o Overloading and function selection
o Friend functions
o Overloading operators
o Dynamic memory allocation revisited

* Exception Handling:
o What are exceptions;
o Throwing an exception;
o The try block;
o Catching an exception;
o Rethrowing exceptions;
o Catch all handlers;
o Exception specifications.

* Templates and the Standard Library:
o Parameterised types and functions:
o function templates;
o class templates.
o Standard Library.

* Software Structuring:
o Consider how to structure large scale software systems;
o Separate implementation from interface header files;
o Dealing with name conflicts;
o Linking with other languages.

* Embedded C++
o a summary of Embedded C++
o Why Embedded C++ was developed
o Embedded C++ features

* Real-Time Specifics:
o Low level facilities in C++
o Accessing hardware;
o Manipulating information at the bit level.
o Synchronising I/O with CPU via Polling;
o Synchronising I/O with CPU via Interrupts.

* Interrupt Programming
o Introduce the writing Interrupt Service Routines in C++
o functional approach
o class approach

* Target Specific Considerations:
o Data types;
o Language features affecting portability;
o Non-standard C++ language features;
o Assembly language interfacing;
o Designing ROMable objects.

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

* Software Testing and Debugging:
o Define what we mean by testing software;
o Highlight the limitations of testing;
o Introduce approaches to testing;
o Summarize real-time debugging tools.

* Object Oriented Design:
o Provide an awareness of the Object Oriented methodologies that exist;
o Highlight those appropriate to real-time systems;
o Provide resource list for further details.

* Course summary.

Audience
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.

Lecturers
Esperan has over 40 regular trainers, who are themselves design consultants working on some of the world`s most advanced projects ranging from multi-million gate ASIC projects to those involving state of the art programmable logic devices. We have hand-picked each trainer for their up to date experience, combined with their presentation skills and flair for helping others to learn. You will find your trainer takes a very personal approach, helping each individual to make the very most of their time in the classroom.

Further information
Please contact ESPERAN for the course fee.
Contact: Steve Tippins
Esperan LtD
Phone +44 1672 520101
Fax +44 1672 521039
Email info@esperan.com

  EuroTraining Course Directory ©2008