Schulungsübersicht
- Was ist ein eingebettetes System?
- Einfache Definition
- Historische Meilensteine
- Merkmale
- Warum C++ nutzen?
- Vergleich mit C
- C: Im Grunde eine Teilmenge von C++
- Leistungsvergleiche
- Hinzugekommene „kostenlose“ Funktionalitäten in C++
- Warum gerade kein C++ verwenden?
- Klassen
- Member-Variablen
- Instanzvariablen
- Klassenvariablen
- Member-Funktionen
- Instanzmethoden
- Klassenmethoden
- Implizite Methoden
- Konstruktor
- Initialisierung
- Delegation von Konstruktoren
- Destruktor
- Copy-Assignment-Operator
- Konstruktor
- Move-Semantik – Vermeidung unnötiger tiefgehender Kopien
- Strukturkonzepte in C++
- Namespaces zur Code-Kapselung
- Member-Variablen
- Vererbung
- Einführung
- Praktische Anwendung
- Leistungsaspekte
- Mehrfache Vererbung
- Virtuelle Vererbung
- Polymorphie
- Einführung
- Virtuelle Funktionen
- Virtueller Destruktor
- Umsetzung im Code
- Laufzeit-Typinformation, RTTI
- Auswirkungen auf die Performance
- Templates
- Einführung
- Funktions-Templates
- Klassen-Templates
- Variadic Templates im Detail
- Code-Explosion – Ursachen und Auswege
- Implementierungsstrategien bei Templates
- Template-Metaprogrammierung: Fortgeschrittene Techniken
- Templates versus Vererbung: Gegenüberstellung von Ansätzen
- Fehlerbehandlung
- Ausnahmeverarbeitung im Detail
- Leistungsfolgen und Problemstellungen
- Praktische Umsetzung in Projekten
- Inline-Code
- Einsatzszenarien für Inline-Funktionen
- Praktische Strategien zur Auswahl
- Startphase des Programms
- Systeem-Initialisierung im Ganzen
- C-Anteil beim Startvorgang
- C++-Beitrag beim Startprozess
- Standardbibliothek
- Standard Template Library (STL)
- iostream-Bibliothek zur Ein-/Ausgabe
- Hauptneuerungen der STL durch C++11:
- Move-Semantik
- Variadic Templates als Neuerung
- Einführung von Werkzeugen für Parallelprogrammierung
- Speicherverwaltung
- Das C++-Speichermodell im Detail:
- Nutzung der stdint-Typen in Programmen
- Atomare Typen und ihre atomaren Operationen
- Mögliche Strategien beim Speichermanagement
- Übersicht über verfügbare Variablenformate
- Placement new – gezielte Allokation in gewünschten Speicherabschnitten
- Eigene Methoden zur Steuerung der Speicherverwaltung
- Das C++-Speichermodell im Detail:
- Interaktion zwischen C und C++
- Name Mangling als Übersetzungsmechanismus erklärt
- Statische Initialisierung im Zusammenspiel beider Sprachen
- Dynamischer Speicherzugriff gemeinsam von C und C++ genutzt
- Strukturinhalte als Kommunikationsbasis:
- POD – einfache Datentypen ohne weitere Komplexität
- Entwurfsmuster für eingebettete Systeme
- RAII – Konzept zur automatischen Ressourcenverwaltung
- Memory-Mapped I/O: Hardware-Direktzugriff vermittelt durch C++-Konstrukte
- Effiziente Interrupt-Verarbeitung mit Objektorientierung
- Sichere Initialisierung von statischen Objekten im Rahmen der Startphase
Voraussetzungen
Für die Teilnahme ist keine spezielle Qualifikation erforderlich.
Erfahrungsberichte (3)
Detaillierte Erklärungen und subtile Wiederholungen der Punkte, die das Wissen wirklich nachhaltig verankert haben. Rods Bereitschaft, auch selten gestellte Fragen zu überprüfen, um sicherzustellen, dass seine Antworten 100% korrekt waren. Ebenso sein Interesse daran, die Vor- und Nachteile alternativer Programmierstile zu diskutieren, sodass wir nicht nur lernten, wie man C++ in der beabsichtigten Weise verwendet, sondern auch, warum es so gemacht werden sollte.
Nick Dillon - cellxica Ltd
Kurs - Using C++ in Embedded Systems - Applying C++11/C++14
Maschinelle Übersetzung
Ich habe die Zeit genossen, die wir für die Lösung der Übungen hatten. Dies war sehr nützlich, da es uns ermöglichte, etwas Zeit zum Nachdenken über unsere Lösungen und deren Umsetzung zu investieren.
Valeriu - Siemens
Kurs - Using C++ in Embedded Systems - Applying C++11/C++14
Maschinelle Übersetzung
Die Details darüber, wie sich der Compiler je nach Syntaxverwendung verhält. Die Abschnitte „Quiz“ sind sehr anregend.
Andrea Pomatto
Kurs - Using C++ in Embedded Systems - Applying C++11/C++14
Maschinelle Übersetzung