Home
Company Profile
Our Clients
Training
Courses
course list
roadmap
all dates
forthcoming
booking
Graduate
Training
Mentoring
Location
Links
Contact us

 


 C++ Training Courses
C++-501
C++ for Embedded Developers

(Formerly C++-501: C++ for Real-Time Developers)

Length
: 5 days
Cost: £2057
Course description - see below or view PDF
Check course dates - click here
Booking information - click here
 Course Detail

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

Duration:
Five days.

Course Materials:
• Delegate Handbook

Related Courses:
• OO-503 Real-Time Systems Design with UML 2.0
• OO-303 Applying Real-Time UML
• AC++-501 Advanced C++
• C++-301 Essential C++
• C++-502 Real-Time C++
• C-501 C for Real-Time Developers
• RTOS-201 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 Hitachi 7045F Evaluation Board (SH2 micro-controller). An application board is programmed via the 7045F to give 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 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.

 telelogic website

Training Courses
C Training Courses
C++ Training Courses
Design Patterns for
Embedded Systems
Training Courses

Embedded Linux
Training Courses

Java Training Courses
Microsoft Embedded Training Courses
MISRA-C Training Courses
RTOS Training Courses
Software Engineering Training Courses
SNMP Training Courses
SysML Training Courses
TCP/IP Training Courses
Testing Training Courses
Microsoft Windows Device Driver Courses
UML Training Courses

Feabhas Codes
AC-401
AC++-501
AWDM-501
CE-501
C-501
C++-303
C++-501
C++-502
C++-503
DP-401
EL-201
EL-202
EL-301
EL-503
EL-504
J-501
J-502
MC-101
MSDN-2530
MSDN-2535
MSDN-2540
MSDN-2545
MSDN-2540N
NDIS-501
OO-101
OO-301
OO-503
RB-201
RTOS-201
SE-401
SE-501
SNMP-301
T-301
TCP-401
WDF-501
WDM-501