C++ für Embedded Systeme


Zielgruppe:

Softwareentwickler/innen mit C-Kenntnissen, die Anwendungen objektorientiert in C++ für Embedded-Systeme erstellen wollen.

Vorkenntnisse:

Gute Programmiererfahrung in C.

Dauer:

5 Tage (mit praktischen Übungen)

Beschreibung:

In diesem Kurs lernen Sie die Programmiersprache C++ für die Anwendung in Embedded-Systemen kennen. Besonderer Wert wird dabei auf ein gutes Verständnis der objektorientierten Programmierung (OOP) und deren Einfluss auf die Systemressourcen gelegt. Zu diesem Zweck werden die Unterschiede der OOP im Vergleich zur klassischen C-Programmierung, sowie deren Auswirkungen auf den Speicherplatz- und Laufzeitbedarf detailliert erläutert. Außerdem zeigt der Kurs, wie Klassen und ihre Beziehungen mithilfe der Unified Modelling Language (UML) dargestellt werden und schafft somit eine wichtige Grundlage für einen guten objektorientierten Softwareentwurf. Schließlich behandelt der Kurs auch, wie Hardwarebausteine objektorientiert eingebunden und benutzt werden können. Die dazu gehörenden Übungen werden bei Präsenzkursen auf einer ARM-basierenden Target-Hardware, bei Onlinekursen mithilfe eines entsprechenden Softwareemulators durchgeführt. Die Spracheigenschaften dieses Grundlagenkurses basieren im Wesentlichen auf dem Sprachstandard C++98/03. Die Eigenschaften der neueren Sprachstandards (C++11, C++14, C++17, C++20) werden in dem weiterführenden Kurs "Modernes C++" behandelt.

Hinweis:

Der Kurs "C++ für Embedded Systeme" (C++/Embedded) setzt sich aus den folgenden Kursmodulen zusammen, die bei entsprechenden Vorkenntnissen auch einzeln gebucht werden können:


Inhalt:

Nicht-Objektorientierte Sprachmittel und I/O

  • Datentyp bool
  • Referenzen
  • Funktionsüberladung
  • Vorbelegungsparameter
  • Dynamische Speicherverwaltung
  • Überladung von Operatoren
  • Ein-/Ausgabe (cin/cout)
  • Cast-Operatoren
  • Bereichsbasierte for-Schleife (C++11)
  • Scoped Enumerations (C++11)
  • nullptr (C++11)
  • Alias-Typdefinition mit using (C++11)

Von der Struktur zur Klasse

  • Datenelemente, Attribute
  • Elementfunktionen, Methoden
  • Statische/nicht-statische Elemente
  • this-Pointer
  • Zugriffsrechte public und private
  • Klasse

Konstruktoren und Destruktoren

  • Standard- und Kopierkonstruktor
  • Bei globalen und statischen Objekten und Arrays
  • Bei Objekten, die Objekte enthalten

Operatoren als Klassenelemente

  • Zuweisungsoperator
  • Auswahloperator
  • Typumwandlungsoperator

Vererbung und Aggregation

  • Basis- und abgeleitete Klassen
  • Vorteile der Vererbung gegenüber der Aggregation
  • Modellierung der Basisklassenfunktionalität
  • Auswirkungen auf Konstruktion und Destruktion
  • Zugriffsrecht protected
  • Ableitung mit Einschränkung der Zugriffsrechte
  • Cast-Operatoren

Virtuelle Funktionen und Polymorphie

  • Statische und dynamische Bindung
  • Virtuelle Funktionen
  • Abstrakte Funktionen und abstrakte Klassen
  • Schnittstellen (Interfaces)
  • Cast-Operatoren

Bewertung der Sprachmittel

  • Objektmodell
  • Erzeugung und Zerstörung von Objekten
  • Temporäre Objekte
  • Vererbung
  • Virtuelle Funktionen
  • Dynamische Speicherverwaltung

Objektorientierte Abbildung von Hardwarebausteinen

  • Traditionelle Lösungen
  • Lösung mithilfe einer Struktur
  • Hardwarebaustein als Objekt einer Klasse
  • Interruptbehandlung

Praktische Übungen

 

Der Kursinhalt entspricht nicht ganz dem, was Sie suchen?

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell für den Betrieb der Seite, während andere uns helfen, diese Website und die Nutzererfahrung zu verbessern (Tracking Cookies). Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.