Embedded C++ für Fortgeschrittene: Objektorientierte Programmierung für Mikrocontroller mit C++/EC++
Die steigende Komplexität in Embedded-Softwareapplikationen und die immer leistungsfähigere Hardware erlauben inzwischen, C++ in steigendem Maße auch in Embedded-Systemen einzusetzen. Dabei sind abhängig von der Applikation Qualitätsmerkmale wie Sicherheit (Safety und Security), Performance, Ressourcenverbrauch und andere zu berücksichtigen.
C++ für Embedded-Applikationen
- Historie
- Spezielle Qualitätsanforderungen an Embedded-Software
- Empfehlungen und Regelwerke (Codier-Richtlinien)
- C++ Compiler-Prinzipien
- Ausblicke: C++ Idiome und Clean Code Development
- Praxistipp mit wichtigen Referenzen
- Klasse und Objekt
- Bestandteile von Klassen
- Modifizierer für Daten, Funktionen und Objekte
- Klassen-Funktionszeiger am Beispiel Zustandsfolgeautomaten-Implementierung
- Klassenrelationen (Assoziation, Aggregation, Komposition und Vererbung)
- Virtuelle Funktionen und Interfaces (Realisierung und Zugriff)
- Erweiterte C++ Konstrukte
- Verwendung von (verschachtelten) Namespaces im Programmcode
- Namespace Alias, anonymer Namespace, Koenig-Lookup, inline Namespace
- Abbildung der Software-Architektur im Programmcode
- C++ Standard-Namespace std
- Anwendungsbeispiele und Empfehlungen zur Verwendung in Embedded-Software
- Übung: Basierend auf der Architektur arbeiten Sie Namespaces in den bestehenden Programmcode ein
- Programmierung der Einfach- und Mehrfachvererbung (mit Interfaces)
- Problemsituationen und Lösungen bei der Mehrfachvererbung
- Virtuelle Vererbung
- Assembler-, Speicher- und Laufzeit-Analysen und -Optimierungen
- Anwendungsbeispiele und Empfehlungen zur Verwendung in Embedded-Software
- Übung: Sie verwenden und programmieren die Mehrfachvererbung, wahlweise virtuell
- Exception Handling - Erläuterung und Programmierung
- Exception-Klassen und -Hierarchien
- Benutzer-Exceptions
- C++ System-Exceptions
- Verschachteltes Exception Handling
- Assembler-, Speicher- und Laufzeit-Analysen und -Optimierungen
- Anwendungsbeispiele und Empfehlungen zur Verwendung in Embedded-Software
- Übung: Sie binden Exception Handling in die bestehende Applikation ein
- Speichersegmente (BSS, Stack, Heap) für Objekte im Vergleich
- Dynamisches Speichermanagement mit new und delete mit und ohne Exception Handling
- Operatorüberladung von new und delete
- Pool-Allocation Pattern
- Placement new
- Risiken und Stolpersteine vermeiden
- Assembler-, Speicher- und Laufzeit-Analysen und -Optimierungen
- Anwendungsbeispiele und Empfehlungen zur Verwendung in Embedded-Software
- Übung: Sie erzeugen und löschen Objekte dynamisch auf dem Heap
- Erläuterung und Programmierung von RTTI
- type_info Klasse
- Konsequenzen beim Einsatz
- Bezug zu Exception Handling und New Style Casts
- Assembler-, Speicher- und Laufzeit-Analysen und -Optimierungen
- Anwendungsbeispiele und Empfehlungen zur Verwendung in Embedded-Software
- Übung: Sie verwenden RTTI zur Klassenidentifikation zur Laufzeit
- Static, dynamic, const und reinterpret Cast
- Die richtige Wahl beim Einsatz
- Bezug zu RTTI und Exception Handling
- Assembler-, Speicher- und Laufzeit-Analysen und -Optimierungen
- Anwendungsbeispiele und Empfehlungen zur Verwendung in Embedded-Software
- Template-Funktionen
- Template-Klasse und -Objekt
- Template-Parameter und -Alias
- Vererbung und Interfaces mit Template-Klassen
- Praxistipps: Statische versus dynamische Polymorphie
- CRTP (Curiously Recurring Template Pattern)
- Template-Spezialisierung und (implizite versus explizite) -Instanziierung
- Type Traits und Concepts
- Variadische Template-Funktionen und -Klassen
- Perfekt Forward
- Assembler-, Speicher- und Laufzeit-Analysen und -Optimierungen
- Anwendungsbeispiele und Empfehlungen zur Verwendung in Embedded-Software
- Übung: Sie programmieren eine Template-Klasse zur Anwendung im Observer-Pattern-Kontext der Applikation
- Besonderheiten und Varianten von Smart Pointer
- Programmierung eigener Smart Pointer
- C++ Smart Pointer
- Lambda-Funktionen
- Assembler-, Speicher- und Laufzeit-Analysen und -Optimierungen
- Anwendungsbeispiele und Empfehlungen zur Verwendung in Embedded-Software
- Grundlegende Konzeptübersicht
- Container, Iteratoren, Adapter, Algorithmen
- Differenzierung und Vorstellung unterschiedlicher Container
- Container für sequenzielle, sortierende und spezielle Anwendungsfälle
- Funktionsobjekte (Funktoren)
- Lambda-Funktionen
- Allocator-Klasse
- Assembler-, Speicher- und Laufzeit-Analysen und -Optimierungen
- Anwendungsbeispiele und Empfehlungen zur Verwendung in Embedded-Software
- Übung: Sie verwenden eine Container-Klasse im Observer-Pattern-Kontext der Applikation
- Embedded-Software-Architekturrichtlinien
- Embedded-Software-Qualitätsmerkmale
- Software-Layer-Pattern: Embedded-Software-Schichtenarchitektur
- Synchrone und asynchrone Software-Architektur
- Unidirektionale und bidirektionale Kommunikation
- Callback-Struktur mit und ohne Betriebsmittel eines Betriebssystems
- Objektorientierte Konzepte und Programmierung von Standard-Peripherietreibern
- Objektorientierte Konzepte und Programmierung von Interrupt-Behandlungen
- Registerbank-Zugriff
- Callback-Strukturen im Interrupt-Kontext
- Anwendungsbeispiele und Empfehlungen zur Verwendung in Embedded-Software
- Übung: Sie binden einen Hardwaretreiber und Interrupt-Service in die Applikation ein
- std::string und std::string_view
- iosteam und iomanip
- std::stringstream
- std::function, std::optional, std::variant und std::any
- Anwendungsbeispiele und Empfehlungen zur Verwendung in Embedded-Software
- Für die durchgängige Übung (Uhrenapplikation) verwenden Sie das Arm Keil MDK (Microcontroller Development Kit) zusammen mit einer realen oder simulierten Hardware basierend auf einem Arm Cortex®-M3 Mikrocontroller.
- Sie erhalten von uns Ihre Übungsverzeichnisse und Lösungsbeispiele für alle Übungsaufgaben.
- Sie erhalten alle C++ Beispiele in elektronischer Form und können diese sehr einfach für Ihre Entwicklungsumgebung anpassen.
- Sie erhalten eine Zusammenfassung von skalierbaren Empfehlungen zur Anwendung von C++ in Embedded-Software als Checkliste.
- Sie erhalten zudem eine Tool- und Software-Komponentenübersicht für die Entwicklung von Embedded-Software.
- Sie bekommen hilfreiche Notationsübersichten für UML und SysML.
Sie kennen die Anwendung und die Effizienz fortgeschrittener C++ Konstrukte (Namespaces, Templates, Exception Handling, Runtime Type Identification, New Style Casts, Mehrfachvererbung, Speichermanagement).
Sie sind in der Lage, über die Verwendung dieser Konstrukte in Ihrer Applikation fundiert zu entscheiden.
Sie haben einen Überblick über die Elemente und Mechanismen der STL (Standard Template Library) und können diese bereits einsetzen.
Sie können Patterns (State-Pattern, Singleton-Pattern, Observer-Pattern, Smart-Pointer-Pattern und Layer-Pattern) auf Ihre Applikationen hin adaptieren und dort implementieren.
Der EC++ Kurs für Fortgeschrittene richtet sich an Programmierer, Software-Entwickler, Software-Designer und Software-Architekten, die fortgeschrittene C++ Konstrukte in der Embedded-Softwareentwicklung einsetzen.
Objektorientierte C++ Grundlagen sind zwingend erforderlich, UML-Grundlagen von Vorteil.
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: 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.