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 donot delete
Onsite-Training: Individuelle Workshops - exakt auf Ihr Projekt zugeschnitten
In maßgeschneiderten Workshops kombinieren wir Ihre konkreten Projektaufgaben mit unserem Trainingsangebot. Dabei berücksichtigen wir Ihre Anforderungen bezüglich Inhalt, Zeit, Ort, Dauer, technischem Umfeld und Vermittlungsmethodik.
Für Ihre Anfrage oder weiterführende Informationen stehen wir Ihnen gern zur Verfügung.
Coaching mit Mehrwert - Expertenwissen für Ihren Projekterfolg
Unsere Coaching-Angebote bieten den großen Vorteil, dass unsere Experten ihr Wissen und ihre Erfahrungen direkt in Ihren Lösungsprozess einbringen und damit unmittelbar zu Ihrem Projekterfolg beitragen.
| Termin | Ort | Sprache | Preis | Dauer | |
|---|---|---|---|---|---|
*Preis je Teilnehmer, in Euro zzgl. USt.
Anmeldecode: E-EC++FOR
Empty donot delete
All inclusive!
Im Preis enthalten:
Mittagessen, Kalt- und Warmgetränke, frisches Obst, Snacks,
Trainingsunterlagen und Ihr MicroConsult-Zertifikat
Seminar-Ort
Präsenz-Trainings:
MicroConsult Academy GmbH
Charles-de-Gaulle-Str. 6
81737 München, Deutschland
+49 89 450617-71
>> Anfahrtsbeschreibung und Hotelinfo
Live-Online-Trainings:
Finden online über WebEx oder Zoom statt.
Organisatorisches
Reservierung / Anmeldung
Sie können sich jederzeit unverbindlich einen Platz in einem Training reservieren; diese Reservierung halten wir bis maximal drei Wochen vor Trainingsbeginn offen.
Für die sichere Teilnahme an einem Training senden Sie uns bitte eine verbindliche Anmeldung.
Beides können Sie online vornehmen – direkt von der jeweiligen Trainingsbeschreibung aus (Button „Unverbindlich Reservieren“ bzw. „Anmelden“).
Bitte beachten Sie auch unser Bonusprogramm bei der gleichzeitigen Buchung von mehreren Trainings und/oder Teilnehmenden.
Seminar-Ort
MicroConsult Academy GmbH
Charles-de-Gaulle-Str. 6
81737 München, Deutschland
Tel.: +49 89 450617-71 >> Anfahrtsbeschreibung
Trainingszeiten (Präsenz-Trainings)
HINWEIS:
Bei einigen Trainings weichen die Zeiten ab. Beachten Sie daher bitte in jedem Fall die Anfangs- und Endzeiten in der Anmeldebestätigung, die wir Ihnen vor Ihrem Training senden!
Eintägiges Training: 08:30 – 17:00 h
Zweitägiges Training: Tag 1: 09:30 – 17:30 h / Tag 2: 08:30 – 17:00 h
Dreitägiges Training: Tag 1: 09:30 – 17:30 h / Tag 2-3: 08:30 – 17:00 h
Viertägiges Training: Tag 1: 09:30 – 17:30 h / Tag 2-4: 08:30 – 17:00 h
4,5-tägiges Training: Tag 1: 09:30 – 17:30 h / Tag 2-4: 08:30 – 17:00 h / Letzter Tag: 08:30 – 13:00 h
Fünftägiges Training: Tag 1: 09:30 – 17:30 h / Tag 2-4: 08:30 – 17:00 h / Letzter Tag: 08:30 – 15:00 h
Struktur und Ablauf unserer Live-Online-Angebote unterscheiden sich von den Präsenztrainings. Die genauen Trainingszeiten entnehmen Sie bitte unserer Anmeldebestätigung.
Trainingszertifikat
Nach Abschluss Ihres Trainings erhalten Sie das MicroConsult-Zertifikat als Beleg über Ihr neu erworbenes Wissen.
Trainingsunterlagen
Hochwertige Lehrmaterialien und ausführliche Unterlagen sind im Preis inbegriffen.
Mitbringen
Neben viel Neugierde und Wissensdurst benötigen Sie nichts weiter. Unsere Räume sind mit allem ausgestattet, was zur Durchführung des Trainings nötig ist, und Ihre Trainingsunterlagen und Schreibmaterial warten bereits auf Sie.
Verpflegung
Gastfreundschaft ist uns wichtig. Deshalb laden wir Sie zum Mittagessen in ein nahegelegenes Restaurant ein. Auch für Ihre Erfrischung ist gesorgt: Kalt- und Warmgetränke stehen Ihnen den ganzen Tag zur Verfügung, ebenso wie Snacks und frisches Obst.
Räumlichkeiten
Bei unseren Schulungsräumen legen wir besonderen Wert auf eine offene und freundliche Atmosphäre und eine hochwertige und moderne technische Ausstattung.

Lage
Unser Trainingszentrum ist verkehrstechnisch günstig gelegen. Mehrere Hotels befinden sich in unmittelbarer Nähe.
Zur Anfahrtsbeschreibung und den Hotel-Informationen
Haben Sie Fragen?
Wir helfen Ihnen gerne weiter. Alle Fragen rund um die Organisation unserer Trainings beantwortet Ihnen unser Service Office unter Tel. +49 (0)89 450617-71. Oder senden Sie eine Mail an training@microconsult.com.
Bonusprogramm
Der Gruppen-Vorteil: Verbindliche Anmeldung einer Gruppe für ein Training
Anzahl der Personen |
Höhe des Rabatts |
| 2 bis 3 Personen | 5 % |
| 4 bis 5 Personen | 10 % |
| ab 6 Personen | 15 % auch bei Verteilung auf 2 Termine |
| mehr als 8 Personen | auf Anfrage |
Der Ausbildungsbonus: Verbindliche Anmeldung einer Person zu mehreren Trainings
Anzahl Trainings |
Höhe des Rabatts |
|---|---|
| 2 Trainings | 5 % |
| 3 Trainings | 8 % |
| Mehr als 3 Trainings | auf Anfrage |
Was sonst noch wichtig ist
Dieses Bonusschema gilt ausschließlich für unsere offenen Trainings.
Erforderlich für die Inanspruchnahme der Sonderkonditionen ist eine geschlossene, verbindliche Anmeldung und die Teilnahme aller gebuchten Personen zu den vereinbarten Terminen. Grundlage für die Berechnung ist die aktuelle Preisliste auf www.microconsult.de.
Die einzelnen Rabattmodelle sind nicht miteinander kombinierbar. Eine Terminverschiebung durch uns oder die Teilnahme einer Ersatzperson bleiben ohne Einfluss auf die Konditionen.
Gültig nur bei Direktbuchung über uns; bei Buchung über externe Weiterbildungsportale findet unser Bonusprogramm keine Anwendung.
Sprechen Sie uns an, unser Service Office steht Ihnen unter Tel. +49 (0)89 450617-71 zur Verfügung. Oder verwenden Sie auch gerne das Kontaktformular.
Gemeinsam finden wir die optimale Lösung für Sie!
Verwandte Trainings
Kundenstimmen
Sie haben Fragen?
Gerne helfen wir Ihnen!
Melanie Menzl
Organisation offene TrainingsSilke Bluhm
Organisation Onsite-Trainings & CoachingNora Pohle
Vertriebkontakt@microconsult.com
+49 89 450617 - 71
Ihre Vorteile auf einen Blick:
- 100 % praxisnah: Sie lernen, was im Projektalltag wirklich zählt – mit echten Tools und erprobten Methoden von Expertinnen und Experten aus der realen Projektwelt.
- Wie und wo Sie wollen: Wählen Sie zwischen Live-Online- oder Präsenz-Training, durchgeführt in unserem Training Center oder bei Ihnen vor Ort.
- Kleine Gruppen, große Wirkung: Maximal 12 Teilnehmende – so bleibt Raum für Ihre Fragen, Ihre Themen, Ihre Praxis.
- Verständlich statt verkopft: Komplexe Inhalte werden greifbar – mit Beispielen, interaktiven Übungen und einem klaren roten Faden.
- Kombinierbar: Ideal als Einzelseminar oder Teil einer Weiterbildungsreihe.
- Nachhaltiger Lernerfolg: Sie erhalten hochwertige Unterlagen zum Nacharbeiten.
- Flexible Teilnahme: Bis 3 Wochen vor dem Termin kostenlos stornieren oder umbuchen – Ihre Buchung bleibt übertragbar.