logo Amblot

 

Logo Doulos

C++ for Embedded Developers
5 days



Télécharger le descriptif au format pdf

This course is delivered in co-operation with Doulos' training partner Feabhas , who specialise in training courses for real-time embedded developers.

Course description

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 practical experience of writing C++ for realtime & embedded systems.

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.

Materials

Delegate Handbook

Related courses

• Real-Time Systems Design with UML 2.0
• Advanced C++ Programming
• C for Real-Time Developers
• Fundamentals of Real-Time Operating Systems

Course workshop

The course makes use of target hardware during the embedded programming practical exercises. The target board is an ARM7-based microcontroller (NXP LPC2129) connected to an application board. Programming the target microcontroller to control the application board gives attendees a real-sense of embedded application development.

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 Operatorss

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


Top of Page

Pour tout renseignement, contactez-nous :
Amblot SARL
166 boulevard du Montparnasse, 75014 Paris
Tél : +33(0)1 42 79 57 48 Fax :+33(0)1 42 79 57 47
email : info@amblot.com

Pour recevoir nos offres de formations,
ainsi que les nouveautés :

Email