Training Categories

Click on a link to see more about each course.

Technical Training

Schedule

Course Outline

Dates Offered (click on the desired date to register):


This course is currently not scheduled for the near future.

Embedded C++

Course Number:  C2

Course Description: 

Embedded C++ (EC++) is a subset of ANSI C++ that is designed to meet the needs of embedded systems developers, offers full compatibility with C++, and retains all the major object-oriented advantages of C++. Compared to ANSI C++, EC++ also offers reduced code size, increased deterministic behavior, and ease of use – making it far more appropriate for embedded development. Many ANSI C++ features can result in added code size and performance overheads even if they are not used in an application. Simple expressions such as template specialization can generate code that is large or that takes a long time to execute. Library functions, particularly input-output, may call and include much more code than necessary for basic functions. EC++ removes these limitations by omitting nonessential C++ features that would otherwise increase code size and impair the run-time efficiency of most embedded applications.

Objectives: 

Upon completion of this course, participants will be able to: Develop embedded applications using C++ Create a program to access hardware using C++ Create a C++ program to handle interrupts in the hardware Describe memory and performance issues associated with embedded C++ Determine how a Real-Time OS affects the use of the C++ language Describe and use Concurrency Use the OO principles to develop embedded applications using C++

Benefits: 

Target Audience: 

Prerequisites: 

A working knowledge of C is required.

Course Length:  2 or 3 days

CourseTopics:

What Is an Embedded System? Variations on the Theme C: The Least Common Denominator A Few Words About Hardware Embedded C++ features. Basic Concepts What is an Object? Putting Object-Oriented Design in Context Developing O-O Designs Information Hiding and Abstraction Developing O-O Designs from Requirements Identifying Classes and Operations "Is-a" vs "Has-a" Combining O-O and Traditional Designs Your First Embedded Program Hello World Compiling, linking and locating Build process Compiling Linking Locating Data Types and Operations Introduction Numeric Types Class complex References Const Qualified Types Advantages of Object-Oriented Analysis & Design Encapsulation Benefits Abstraction Benefits Inheritance Benefits Reuseability Procedural Programming Functions and modules Functional Decomposition Functional decomposition: example File Organization Structured Programming Overloading Inline Functions Arguments and Returns Values Classes Class types Class String Constructors Destructors Data Members Static Data members Constant Members Function members Operator functions Access protection and friends Initialization and conversion Pointers to class members Dynamic Storage Allocation Recursive Data Structures Storage Management in C++ Data Abstraction Abstract Data Type (ADT) Complex Numbers Strings Sorted Collections Control Abstraction Inheritance Base and Derived Classes Class Derivation – examples Class Derivation and Constructors The “is-a” Relationship Class Hierarchies Implicit calls Base Constructors Calling Ordering Abstract base classes Visibility Access Control Public Derivation Private Derivation Protected Members Virtual Inheritance Virtual Functions Protected Members Pure Virtual Functions Virtual Base classes Object Oriented Programming Object Oriented Programming Designing objects Object types as modules Dynamic object oriented style Storage Management General Issues Storage Management in Constructors Storage Management in Destructors Operators new and delete Overloading new and delete Arrays Class-specific new and delete Copy Constructor X(X&) Implicit copy semantics Memory Type of Memory Memory Testing Validating Memory Contents Working with Flash Memory Libraries Libraries Interface to exiting libraries Reusable Libraries in C++ I/O and String Libraries Files and Streams Using Ostream and Istream Buffered I/O Real-Time Specifics: Introduce the low level facilities of C++ including: Accessing hardware; Manipulating information at the bit level. Synchronising I/O with CPU via; Polling; Interrupts. Interrupt Programming Introduction to writing 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.

Phone:  772 217 3261

Email:  info@jhltech.com

Contact Us