Embedded C++ Advanced: Object-Oriented Programming for Microcontrollers with C++/EC++
The growing complexity of embedded software applications and the ever increasing performance of hardware has resulted in C++ being more and more used in embedded systems. Depending on the application, quality features like safety and security, performance, resource consumption etc. have to be taken into account.
C++ for Embedded Applications
- History
- Specific quality requirements on embedded software
- Recommendations and rules (coding guidelines)
- C++ compiler basics
- Outlook: C++ idioms and clean code development
- Practical tip with important references
- Class and object
- Class elements
- Modifiers for data, functions and objects
- Class function pointer using a state machine implementation as an example
- Class relations (association, aggregation, composition and inheritance)
- Virtual functions and interfaces (implementation and access)
- Extended C++ constructs
- Using (nested) namespaces in program code
- Namespace alias, anonymous namespace, Koenig lookup, inline namespace
- Applying the software architecture to program code
- C++ standard namespace std
- Application examples and recommendations for using these features in embedded software
- Exercise: Integrating namespaces in existing program code based on the architecture
- Programming single inheritance and multiple inheritance (with interfaces)
- Issues related to multiple inheritance, solutions
- Virtual inheritance
- Assembler, memory and runtime analysis and optimization
- Application examples and recommendations for using these features in embedded software
- Exercise: Using and programming multiple inheritance, virtually as an option
- Exception handling - definition and programming
- Exception classes and hierarchies
- User exceptions
- C++ system exceptions
- Nested exception handling
- Assembler, memory and runtime analysis and optimization
- Application examples and recommendations for using these features in embedded software
- Exercise: Integrating exception handling in the existing application
- Memory segments (BSS, stack, heap) for objects, comparison
- Dynamic memory management with new and delete, with and without exception handling
- Operator overload of new and delete
- Pool allocation pattern
- Placement new
- Identifying risks and avoiding pitfalls
- Assembler, memory and runtime analysis and optimization
- Application examples and recommendations for using these features in embedded software
- Exercise: Creating and deleting an object dynamically on the heap
- RTTI - definition and programming
- type_info class
- Consequences in use
- Relation to exception handling and new style casts
- Assembler, memory and runtime analysis and optimization
- Application examples and recommendations for using these features in embedded software
- Exercise: Using RTTI for class identification at runtime
- Static, dynamic, const and reinterpret cast
- The right choice for use
- Relation to RTTI and exception handling
- Assembler, memory and runtime analysis and optimization
- Application examples and recommendations for using these features in embedded software
- Template functions
- Template class and object
- Template parameters and alias
- Inheritance and interfaces with template classes
- Practical tips: Static versus dynamic polymorphism
- CRTP (curiously recurring template pattern)
- Template specialization and (implicit versus explicit) instantiation
- Type traits and concepts
- Variadic template functions and classes
- Perfect forward
- Assembler, memory and runtime analysis and optimization
- Application examples and recommendations for using these features in embedded software
- Exercise: Programming a template class for use in the observer pattern context of the application
- Smart pointers - specifics and variants
- Programming own smart pointers
- C++ smart pointers
- Lambda functions
- Assembler, memory and runtime analysis and optimization
- Application examples and recommendations for using these features in embedded software
- Basic concept
- Containers, iterators, adapters, algorithms
- Specific container types and their differentiation
- Containers for sequential, sorting and specific applications
- Function objects (functors)
- Lambda functions
- Allocator class
- Assembler, memory and runtime analysis and optimization
- Application examples and recommendations for using these features in embedded software
- Exercise: Using a container class in the observer pattern context of the application
- Embedded software architecture guidelines
- Embedded software quality features
- Software layer pattern: embedded software layer architecture
- Synchronous and asynchronous software architecture
- Unidirectional and bidirectional communication
- Callback structure with and without operating system resources
- Object-oriented concepts and programming of standard peripheral drivers
- Object-oriented concepts and programming of interrupt handler
- Register bank access
- Callback structures in an interrupt context
- Application examples and recommendations for using these features in embedded software
- Exercise: Integrating a hardware driver and an interrupt service in the application
- std::string and std::string_view
- iosteam and iomanip
- std::stringstream
- std::function, std::optional, std::variant and std::any
- Application examples and recommendations for using these features in embedded software
- You will use the Arm Keil MDK (microcontroller development kit) along with real or simulated hardware, based on an Arm Cortex®-M3 microcontroller throughout the exercise (watch application).
- Participants can download their exercises and the solutions developed by MicroConsult for this workshop.
- You get all C++ examples in electronic format and can easily adjust them to your development environment.
- You get a checklist with scalable recommendations for using C++ in embedded software.
- You get a tool and software component overview for developing embedded software.
- You get helpful notation overviews for UML and SysML.
You know the application and efficiency of advanced C++ constructs (namespaces, templates, exception handling, runtime type identification, new style casts, multiple inheritance, memory management).
You are able to make informed decisions on using these constructs in your application.
You have an overview of the elements and mechanisms of the STL (Standard Template Library) and can use them.
You can adapt patterns (state patterns, Singleton patterns, observer patterns, smart pointer patterns and layer patterns) to your applications and implement them.
The EC++ advanced training addresses programmers, software developers, software designers and software architects who use advanced C++ constructs in embedded software development.
Basic knowledge of object oriented C++ is a must; basic knowledge of UML of advantage.
Empty do not delete
Onsite training: Individual workshops – tailored precisely to your project
In tailor-made workshops, we combine your specific project tasks with our training offerings. We take your requirements regarding content, time, location, duration, technical environment, and delivery method into account.
We will be happy to answer your questions.
Coaching with added value - expert knowledge for your project success
Our coaching offers have the great advantage that our experts contribute their knowledge and experience directly to your solution process and thus directly contribute to your project success.
| Date | Location | Language | Price | Duration | |
|---|---|---|---|---|---|
*Price per participant, in Euro plus VAT.
Training code: E-EC++FOR
Empty do not delete
All inclusive!
The training price includes:
Lunch, soft drinks, tea and coffee, fruit, snacks,
training documentation and your MicroConsult training certificate.
Seminar location
In-person training:
MicroConsult Academy GmbH
Charles-de-Gaulle-Str. 6
81737 Munich, Germany
+49 89 450617-71
>> Directions and hotel information
Live online trainings:
Take place online via WebEx or Zoom.
Organizational details
Reservation / booking
You can make a non-binding training seat reservation at any time; we will keep the reservation for you for up to max. three weeks before the training starts.
To confirm your participation in a training, please submit a binding booking.
You can make the non-binding reservation as well as the binding booking online on the respective training page (button "Booking" or "Non-binding reservation").
Please also note our Bonus program when booking several trainings and/or participants at once.
Seminar location
MicroConsult Academy GmbH
Charles-de-Gaulle-Str. 6
81737 Munich, Germany
Phone: +49 89 450617-71 >> Directions
Training times (face-to-face training)
Please note:
Some trainings have different start/end times, so please take note of the times we send you with our order confirmation before the training.
One-day training: 08:30 – 17:00 h
Two-day training: Day 1: 9:30 – 17:30 h / Day 2: 8:30 – 17:00 h
Three-day training: Day 1: 9:30 – 17:30 h / Day 2-3: 8:30 – 17:00 h
Four-day training: Day 1: 9:30 – 17:30 h / Day 2-4: 8:30 – 17:00 h
4.5-day training: Day 1: 9:30 – 17:30 h / Day 2-4: 8:30 – 17:00 h / Last day: 8:30 – 13:00 h
Five-day training: Day 1: 9:30 – 17:30 h / Day 2-4: 8:30 – 17:00 h / Last day: 8:30 – 15:00 h
The structure of our live-online trainings is different to face-to-face trainings. Please refer to our registration confirmation for training times.
Training certificate
After the training, you will receive your MicroConsult Training Certificate to document the know-how you acquired.
Training documentation
High-quality, extensive training documentation is included in the training price.
Material
All you have to bring is thirst for knowledge and curiosity. Our seminar rooms are fully equipped with everything needed to run the training - including your training documentation and stationery.
Catering
Hospitality is important to us. That's why we invite you to lunch at a nearby restaurant. We've also taken care of your refreshments: hot and cold drinks are available all day, and so are snacks and fresh fruit.
Training environment
Our training rooms offer an open and friendly atmosphere and feature high-quality and modern training equipment.

Location
The MicroConsult training center is conveniently located and can be reached easily be public transport or by car. Several hotels are in close vicinity.
Click here for directions and hotel information.
Do you need assistance?
Please don't hesitate to contact us. For questions concerning the organization of face-to-face or online trainings, please contact our Service Office, phone +49 (0)89 450617-71. Or send an e-mail to training@microconsult.com.
Bonus program
The group advantage: Binding registration of a group for a training
Number of persons |
Amount of the discount |
| 2 to 3 people | 5 % |
| 4 to 5 people | 10 % |
| from 6 people | 15 % also when split into 2 dates |
| more than 8 people | upon request |
The training bonus: Binding registration of a person for several training courses
Number of training sessions |
Amount of the discount |
|---|---|
| 2 training sessions | 5 % |
| 3 training sessions | 8 % |
| More than 3 training sessions | upon request |
What else is important
This bonus scheme applies exclusively to our open training sessions.
To take advantage of the special conditions, a closed, binding registration and the participation of all booked persons on the agreed dates are required. The basis for the calculation is the current price list on www.microconsult.de.
The individual discount models cannot be combined with one another. A date change by us or the participation of a substitute participant will not affect the terms and conditions.
Valid only for direct bookings through us; our bonus program does not apply to bookings through external training portals.
Please contact us, our Service Office is available at +49 (0)89 450617-71. Or you can also use the Contact form.
Together we will find the optimal solution for you!
Related trainings
Customer testimonials
Do need additional information? Feel free to get in touch!
Melanie Menzl
Organization open trainingsSilke Bluhm
Organization onsite trainings & coachingsNora Pohle
Saleskontakt@microconsult.com
+49 89 450617 - 71
Your benefits at a glance:
- 100 % practical: You will learn what really matters in everyday project work – with real tools and proven methods from experts from the real project world.
- How and where you want: Choose between live online or face-to-face training, conducted in our training center or at your location.
- Small groups, big impact: Maximum 12 participants – so there is room for your questions, your topics, your practice.
- Understandable instead of intellectual: Complex content becomes tangible – with examples, interactive exercises and a clear thread.
- Combinable: Ideal as an individual seminar or part of a training series.
- Sustainable learning success: You will receive high-quality documents for further work.
- Flexible participation: Cancel or rebook free of charge up to 3 weeks before the appointment – your booking remains transferable.