适用于嵌入式开发人员的 C++ 语言培训课程
C++ for Embedded Developers
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.