Embedded Programmierung mit modernem C++ - Seminar / Kurs von Vogel Communications Group

Inhalte

Zum Thema

Embedded Programmierung ist eine der Domänen für modernes C++. Daher verwundert das Zitat von Bjarne Stroustrup zu modernem C++ nicht: „... make C++ even better for embedded system programming...". Bietet C++ zum einen den Durchgriff auf die Hardware, bietet C++ zum anderen Abstraktion an, um komplexe Systeme zu entwickeln. Insbesondere mit C++11 erhält C++ noch mehr mächtige Features für die embedded Programmierung. Das sind Features wie die Move-Semantik, die es erlaubt, große Objekte billig zu verschieben statt teuer zu kopieren, Features wie constexpr-Funktionen, die es ermöglichen, teure Berechnungen auf die Compilezeit zu verlagern oder Features wie der neue Container std::array, der das Beste aus std::vector und dem C-Array vereint.

Ziele

In dem Seminar erlernen Sie die Vorteile von modernem C++ in der embedded Programmierung. Dabei lernen Sie zuerst die Anforderungen an die embedded Programmierung und die Antworten darauf in C++ . Diese sind:
  • Sicherheitskritische Systeme
  • Hohe Performanz
  • Eingeschränkte Ressourcen
  • Mehrere Aufgaben gleichzeitig

1. Seminartag

Sicherheitskritische Systeme
  • Vereinheitlichte Initialisierung mit {} überall anwenden und dadurch die heimliche Verengung von Datentypen vermeiden
  • Automatische Typableitung kennen lernen um Refaktoring von Code zu unterstützen und Variablen immer zu initialisieren
  • Aufzählungen mit Gültigkeitsbereich als typsichere Variante zu klassischen Aufzählungen kennen lernen
  • Mit nullptr Zeiger die Mehrdeutigkeiten der Zahl 0 und dem Makro NULL verhindern
  • Benutzerdefinierte Literale einsetzen um Zahlen mit Einheiten zu verwenden
  • Zusicherungen an den Code mit static_assert vom Compiler prüfen lassen

2. Seminartag

  • Hohe Performanz
  • Selbst optimierenden Code mit Type-Traits implementieren
  • Konstante Ausdrücke mit constexpr verwenden um teuere Berechnung auf die Compilezeit zu verschieben
  • Durch den Umstieg von geordnete auf ungeordnete assoziative Container die Applikation deutlich beschleunigen
  • Templates
  • Vermittlung der Grundlagen
  • Vorteile von Templates vorstellen
  • Vergleich von statischem Polymorphismus (Templates) mit dynamischen Polymorphismus (Objekt-Orientierung)
Eingeschränkte Ressourcen
  • Move-Semantik einsetzen um
  • Teures Kopieren durch billiges Verschieben zu ersetzen
  • Daten nur dann zu erzeugen, wenn es unbedingt notwendig ist
  • Daten zu verschieben, die nicht kopiert werden können
Perfekt Forwarding um Funktions-Argumente identisch weiterzureichenSpeicherverwaltung
  • Den Einsatz von new und delete besser verstehen
  • placement new für besondere Einsatzzwecke verwenden
  • Speicherlöcher durch placement new finden
Den neuen Container std::array kennen lernen, der die Speicher- und Laufzeitcharakteristik des C-Arrays mit dem Interface des C++-Vektors verbindetSmart Pointer
  • Exklusive Besitzverhältnisse mit std::unique_ptr
  • Geteilte Besitzverhältnisse mit std::shared_ptr
  • Zeitweise Besitzverhältnisse mit std::weak_ptr
  • Performanz- und Ressourcenvergleich der Smart Pointer

3. Seminartag

  • Mehrere Aufgaben gleichzeitig
  • Das Speichermodell
  • Sequenzielle Konsistenz verstehen
  • Atomare Datentypen kennen lernen
Threads
  • Erzeugen eines Threads
  • Lebenszeit eines Threads
  • Datenübergabe an einen Thread
Gemeinsame von Threads verwendete Daten
  • Schutz mit Mutexen
  • Schutz mit Locks
Daten thread-sicher initialisieren
  • Konstanten Ausdrücken
  • Die Funktion std::call_once und dem Flag std::once_flag
  • Statischen Variablen
Thread lokale VariablenBedingungsvariablen
  • Synchronisation von Threads
  • Gefahren von Bedingungsvariablen
Task
  • std::async
  • std::packaged_task
  • std::promise und std::future

Seminarmethoden

Zuerst vermittelt Ihnen der Referent die notwendige Theorie, die Sie dann in praktischen Übungen direkt answenden. Die besonderen C++ Features für die embedded Softwareentwicklung werden vom Referenten in den Kontext der Softwareentwicklung mit modernem C++ eingebunden. Zu allen Übungen erhalten Sie natürlich die Musterlösungen.Bitte beachten Sie, dass Sie für das Seminar einen Laptop benötigen, auf dem ein aktueller C++ Compiler (mind. C++11) installiert ist.

Zielgruppe

Jeder, der über Grundkenntnisse in C++ verfügt und diese mit modernem C++ erweitern möchte.

Lernziele

Die Teilnehmer lernen die Vorteile von modernem C++ in der embedded-Programmierung kennen.

Zielgruppen

Leiter Entwicklung, Mitarbeiter Entwicklung, Programmierer, Software-Entwickler

Termine und Orte

Datum Uhrzeit Dauer Preis
Hamburg, DE
26.10.2021 - 28.10.2021 10:00 - 17:00 Uhr 24 h Jetzt buchen ›
Leipzig, DE
24.03.2021 - 26.03.2021 10:00 - 17:00 Uhr 24 h Jetzt buchen ›
München, DE
28.07.2021 - 30.07.2021 10:00 - 17:00 Uhr 24 h Jetzt buchen ›
Stuttgart, DE
08.12.2020 - 10.12.2020 10:00 - 17:00 Uhr 24 h Jetzt buchen ›
08.12.2021 - 10.12.2021 10:00 - 17:00 Uhr 24 h Jetzt buchen ›

SG-Seminar-Nr.: 5607197

Anbieter-Seminar-Nr.: 116

Termine

  • 08.12.2020 - 10.12.2020

    Stuttgart, DE

  • 24.03.2021 - 26.03.2021

    Leipzig, DE

  • 28.07.2021 - 30.07.2021

    München, DE

  • 26.10.2021 - 28.10.2021

    Hamburg, DE

  • 08.12.2021 - 10.12.2021

    Stuttgart, DE

Preise inkl. MwSt. Es können Gebühren anfallen. Für eine exakte Preisauskunft wählen Sie bitte einen Termin aus.

Jetzt buchen ›
Seminar merken ›

Semigator berücksichtigt

  • Frühbucher-Preise
  • Last-Minute-Preise
  • Gruppenkonditionen

und verfügt über Sonderkonditionen mit einigen Anbietern.

Der Anbieter ist für den Inhalt verantwortlich.

Über Semigator mehr erfahren

  • Anbietervergleich von über 1.500 Seminaranbietern
  • Vollständige Veranstaltungsinformationen
  • Schnellbuchung
  • Persönlicher Service
Datum Uhrzeit Dauer Preis
Hamburg, DE
26.10.2021 - 28.10.2021 10:00 - 17:00 Uhr 24 h Jetzt buchen ›
Leipzig, DE
24.03.2021 - 26.03.2021 10:00 - 17:00 Uhr 24 h Jetzt buchen ›
München, DE
28.07.2021 - 30.07.2021 10:00 - 17:00 Uhr 24 h Jetzt buchen ›
Stuttgart, DE
08.12.2020 - 10.12.2020 10:00 - 17:00 Uhr 24 h Jetzt buchen ›
08.12.2021 - 10.12.2021 10:00 - 17:00 Uhr 24 h Jetzt buchen ›