-->

Sicheres und effizientes C++ für eingebettete Systeme


Beschreibung

Nächste offene Schulung: 24. Februar 2025
Jetzt buchen

In der heutigen Technologielandschaft bieten die jüngsten Fortschritte in C++ Tools, mit denen Sie die einzigartigen Herausforderungen eingebetteter Umgebungen bewältigen können. Dies gilt insbesondere für Umgebungen, die den Richtlinien MISRA, Autosar oder SIL folgen.

Dieser Kurs verbessert Ihre Kenntnisse im Bereich eingebetteter Systeme mithilfe von modernem C++. Anhand praktischer Beispiele lernen Sie, wie Sie Code schreiben, der sicherer, robuster und effizienter ist. Sie werden Muster sehen, die die POSIX-API für Länge und Wert ersetzen.

Wir beginnen mit den Grundlagen und gehen nach und nach zu fortgeschritteneren Themen über, die alle darauf ausgelegt sind, Ihren Code stärker und effizienter zu machen.

Coroutinen fügen dem Schreiben von Parsern eine ganz neue Ebene hinzu. Sie lernen, wie sie funktionieren und wie Sie sie verwenden können, ohne sich auf den Heap zu verlassen.

Viele eingebettete Systeme funktionieren ohne Heap. Wir untersuchen Standardkonformes und undefined behavior freie Möglichkeiten zum Umgang mit benutzerdefinierten Allokatoren. Sie werden aus erster Hand sehen, wie unique_ptr aus der Standard Library (STL) selbst in speicherbeschränkten Umgebungen bahnbrechend sein kann.

Dies führt direkt zum nächsten Thema, der Verwendung der STL in einer eingebetteten Umgebung, die häufig die Verwendung des globalen Heaps oder von Ausnahmen (Exceptions) nicht zulässt. Sie lernen, STL-Funktionen in diesen Kontexten effektiv zu nutzen. Müssen Sie std::chrono verwenden, haben aber Kompatibilitätsprobleme mit Ihrer Hardware-Uhr? Ich zeige Ihnen, wie Sie Ihre benutzerdefinierte Uhr nahtlos in STLs std::chrono integrieren und sicherstellen, dass alles harmonisch funktioniert.

Schließlich kann die Fehlerbehandlung bei der eingebetteten Programmierung schwierig sein, insbesondere ohne Ausnahmen. Sie erhalten Einblicke in die leistungsstarken Funktionen von std::expected von C++23, wodurch Ihr Code lesbarer, wartungsfreundlicher und robuster wird.

Was die Teilnehmer gewinnen

Am Ende dieses Kurses sind Sie nicht nur mit den neuesten C++-Funktionen vertraut, die auf eingebettete Systeme zugeschnitten sind, sondern auch in der Lage, typsicheren Code zu schreiben, der häufige Fallstricke wie Out-of-Bounds-Zugriffe effektiv vermeidet. Verbessern Sie die Lesbarkeit Ihres Codes und erhalten Sie die Effizienz, während Sie gleichzeitig die Kunst der eingebetteten Programmierung souverän meistern.

Agenda

  • Sprachfunktionen in C++
    • Explizite Datentypkonvertierung
    • Einheitliche Initialisierung
    • Zifferntrennzeichen
    • Datentypenermittlung mittels auto
    • bereichsbasierte for-Schleifen
    • Streng typisierter enum
    • static oder inline
    • Attribute
    • Anwendung benutzerdefinierter Literale
  • Vermeidung von aufgeblähtem Code in C++
  • Kontrolle Ihrer Objekte (OOP)
    • class oder struct
    • explicit
    • Standard-Member-Initialisierung
    • Konstruktordelegierung
    • Deaktivierung von Mitgliedsfunktionen-Funktionen
    • Kontrolle der Operatoren Ihrer Klasse
    • Vererbung
    • Virtuelle Funktionen
    • Curiously Recurring Template Muster
  • ROM-barkeit
  • Coroutinen: Wiederaufnehmbare Funktionen
  • Leben ohne Heap
    • Dynamische Speicherverwaltung
    • Richtige Ausrichtung Ihres lokalen Heap-Puffers
    • Placement-new
    • Die STL als Alternative zu placement-new
    • Implementierung eines Pool-Allokators
    • std::unique_ptr
  • Standard Template Library tritt eingebettete Systeme
    • STL-Daumenregeln
    • Sichere Header für eingebettete Umgebungen
    • std::chrono
    • std::array
    • std::span
    • std::optional
    • std::string_view
    • std::expected
    • Einblick in Algorithmen

Mit dem Kurs erhalten Sie

  • Ein qualitativ hochwertiges Handout als farbiges PDF, das alle Verweise und eine Liste der Akronyme enthält. Sodass Sie nach dem Training jederzeit nachlesen können.
  • Den Quell-Code für die Übungen inklusive Musterlösungen als ZIP-Datei.
  • Teilnahmebescheinigung für Ihren Lebenslauf.
  • Eins meiner Bücher kostenlos, damit Sie Ihr Wissen vertiefen können.