Schulungen, Coaching und Technologieberatung

German English

Drucken

Embedded Programmierung mit modernem C++

zuletzt aktualisiert:
11. September 2017
Kurs-Nr.:
11
Preis:
1500,00 EUR pro Platz (zzgl. MwSt.)
Ort:
Großraum Stuttgart / Vor Ort
Gruppe:
Entwickler
Level:
Fortgeschrittene

Beschreibung

 Dauer

  • 3 Tage

Begleitliteratur

Vorgehensweise

  • Theorie und Praxis mit vielen Übungen, zu denen Sie den Sourcecode und die Musterlösungen erhalten
  • Sie benötigen ein Laptop mit einem aktuellen C++ Compiler (mind. C++11)

Ziel

  • Die Vorteile von modernem C++ in der embedded Programmierung kennen lernen
  • Besonderen Anforderungen der embedded Programmierung verstehen und C++'s Antworten einsetzen

Standard

  • C++11/C++14 Standard

Inhalt

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

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 weiterzureichen
  • Speicherverwaltung
    • 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 verbindet
  • Smart 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

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 Variablen
  • Bedingungsvariablen
    • Synchronisation von Threads
    • Gefahren von Bedingungsvariablen
  • Task
    • std::async
    • std::packaged_task
    • std::promise und std::future

Teilnahmebedingungen:

Anmeldung

Sollte die Teilnehmerkapazität ausgeschöpft sein oder die Mindestteilnehmerzahl nicht erreicht werden, erhalten Sie
umgehend, spätestens aber zwei Wochen vor dem Seminar, eine schriftliche Absage.

Zahlungsmodalitäten

Mit der Anmeldebestätigung erhalten Sie eine Rechnung. Die Teilnahmegebühr muss 3 Werkstage vor Kursbeginn auf unserem Konto eingegangen sein.

Verhinderung des Teilnehmers

Sollten Sie am Seminartermin verhindert sein, ist eine Übertragung der Teilnahmeberechtigung selbstverständlich
möglich. Bitte teilen Sie uns in diesem Fall Name und Anschrift des Ersatzteilnehmers mit.

Rücktritt des Teilnehmers

Bei einem Rücktritt des Teilnehmers fallen folgende Gebühren an:
Bis drei Wochen vor Veranstaltungsbeginn gebührenfrei, bis zwei Wochen vor Veranstaltungsbeginn 33% vom
Preis, bis eine Woche vorher 67% vom Preis. Bei späteren Abmeldungen kann der Seminarbeitrag nicht mehr
erstattet werden.

Absage von Seminaren

Die Absage von Seminaren oder die Änderung von Terminen oder Referenten aus wichtigem Grund behalten wir
uns vor. Wir erstatten Ihnen in diesem Fall die Seminargebühr zurück. Weitergehende Ansprüche sind
ausgeschlossen.

Allgemeine Haftungsbeschränkung

Der Veranstalter haftet nicht für Schäden, die durch höhere Gewalt oder andere Seminarteilnehmer verursacht
werden. Jegliche Haftung des Veranstalters ist auf Fälle grober Fahrlässigkeit oder Vorsatz beschränkt.

Allgemeine Informationen

Mit der Anmeldebestätigung erhalten Sie weitere Informationen über den genauen Veranstaltungsort, Anfahrt und
Übernachtungsmöglichkeiten.


Tragen Sie sich in die Interessentenliste ein!

Für diesen Kurs sind bisher keine Termine angesetzt.
Wenn Sie sich für den Kurs interessieren, können Sie sich in die Interessentenliste eintragen. Sie werden dann benachrichtigt, sobald ein Termin für den Kurs feststeht.

Teilnehmerdaten

Kontaktdaten

* notwendige Angaben

Kategorie

Zum Seitenanfang