Last ned brosjyre
Last ned kalender
KursDirekt

C++-501: C++ for Embedded Developers - Mike Tarlton




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.

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:
• To provide an understanding of the essentials of the C++ programming language.
• To give you practical experience of writing C++ for realtime & embedded systems.
• To give you the confidence to apply these new concepts to your next real–time project.

Delegates will learn:
• The core C++ syntax and semantics
• How to access hardware in the language
• How to program interrupt handlers in C++
• About memory and performance issues associated with C++
• 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.

Course Workshop:
The course makes use of target hardware during the realtime practical exercises. The board targeted is the Hitachi 7045F Evaluation Board (SH2micro–controller). An application board is programmed via the 7045F to give attendees a real sense of embedded application development.

About the Instructor, Mike Tarlton:
After an early career in software development for the MOD, Mike worked in the Defence industry for many years gaining extensive experience in the development of real–time embedded systems.

In 2001 Mike became a freelance trainer for Feabhas, whilst initially still undertaking development assignments in the area of wireless network solutions. Most of Mikes recent development work has been in C++. In January 2007 Mike became a permanent member of the Feabhas lecturing team. Mikes speciality areas being C, C++ and Real–Time Operating Systems.










Kurs_Bilder
Kursdatoer - Bestill her:

Pris:
22 900


Antall dager:
5

Tidspunkt:
09:00 - 16:15


Kurslokale:
IT Fornebu


Inklusiv:
Course material, relevant textbook and lunch (the course and all material is in English).


Emner:
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.