| |
Course Description
| C++ for Real-Time Developers |
Date: from 18 Oct 2004 to 22 Oct 2004 5 day(s)
English Stockholm, Sweden
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.
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.
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.
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.
Please contact ESPERAN for the course fee.
Contact: Steve Tippins
Esperan LtD
Phone +44 1672 520101
Fax +44 1672 521039
Email info@esperan.com
|