为嵌入式系统提供的高级 C++ 语言培训课程
Advanced C++ for Embedded Systems
Course Outline
Introduction C++ Performance
- Member functions
- Static functions
- Inheritance and V-Tables
- RTTI and type info.
Embedded C++
- Why Embedded C++ was developed
- Embedded C++ features
- Migrating from EC++ to full C++.
Real-Time Specifics
- Accessing hardware
- Manipulating information at the bit level.
Device Interaction
Interrupts
- Different interrupt models
- Function model
- Name encoding
- Class model
- Device “has an” interrupt
- Memory overhead.
Functions and Operators
- Class defined conversions
- Overloading and function selection
- Friend functions and classes
- Overloading operators
- Dynamic memory allocation revisited
- Assignment
- Copy constructors.
Exception Handling
- What are exceptions
- Throwing an exception
- The try block
- Catching an exception
- Rethrowing exceptions
- Catch all handlers
- Exception specifications
- Exceptions models and overheads.
Templates
- Introduce parameterised types and functions:
- function templates
- class templates
- Performance implications.
The Standard Library
- Introduction to the Standard Library.
- The STL
- Using the STL efficiently.
Software Structuring
- Consider how to structure large scale software systems
- Separate implementation from interface header files
- Dealing with name conflicts
- Linking with other languages.
Target Specific Considerations
- Portability Considerations
- Non-standard C++ language features
- Assembly Language Interfacing
- Designing ROMable objects.
Design Patterns
- What patterns are and are not
- Patterns types
- Architectural
- Design
- Idioms
- Pattern examples.
Concurrency
- Concurrency
- Scheduling strategies
- Task-Is-Polymorphic
- Task-Runs-Polymorphic
- Sharing resources in multi-tasking systems
- Mutex objects
- Synchronizing tasks
- Transferring data between tasks.