oop-trainer.de

C++


C++ Entwicklung im Embedded System

- Schulung zum Einsatz von C++ in eingebetteten Systemen


Der Kurs setzt ein Grundverständnis von C++ voraus und geht auf die Besonderheiten der Sprache für die Embedded Softwareentwicklung ein. C++ wird immer mehr aus den klassischen Bereichen der Softwareentwicklung verdrängt. In der Entwicklung von Anwendungssoftware und Serverdiensten haben Java & Co. die Sprache C++ inzwischen weit überrundet. Auch die Technologieführerschaft in der Objektorientierten Softwareentwicklung hat inzwischen Java inne. Auf der anderen Seite lassen sich aus diversen Gründen diese neuen Sprachen in vielen Bereichen der Embedded Entwicklung nicht einsetzen. Eine wesentliche Ursache ist das Fehlen eines deterministischen Laufzeitverhaltens. Weitere Gründe sind der enorme Resourcenverbrauch und das ungünstige Hochstartverhalten von Java-Applikationen.
Den Determinismus teilt C++ mit C - der klassischen Sprache der Systementwicklung und Embedded Programmierung. Im Resourcenbedarf und im Aufstartverhalten lassen sich C++-Programme ebenso effizient wie C-Programme gestalten.
Der Entwicklung leistungsfähiger Hardware und flexibler Compiler - allen voran GCC - ist es zu danken, dass C++ immer mehr in die Domäne von C einbricht. C++ verschwindet also nicht vom Markt, sondern erlebt in der eingebetteten Programmierung eine Renaissance. Der Einsatz von C++ in der Industrie steht heute auf einer breiteren technologischen Grundlage als noch vor zehn Jahren, als C++ hauptsächlich zur Erstellung von GUI-Oberflächen verwendet wurde. Dieser Veränderung des Einsatzes von C++ muss der Softwareentwickler Rechnung tragen, wenn er erfolgreich sein möchte. In diesem Seminar werden ganz wesentlich Bereiche des Einsatzes von C++ in der Embedded Softwareentwicklung behandelt. Insbesondere werden die Fragen des Laufzeitverhaltens, des Footprints und der Code-Coverage von C++-Code gestellt.


Themen:

  • Historische Entwicklung von C++
  • Grundlegende Syntax
  • Erste Beispiele
  • Kennenlernen der Tools
  • Standarddatentypen
  • Strukturen
  • Operatoren
  • Funktionen
  • Zeiger und Referenzen
  • Dynamische Speicherallokation
  • Klassenkonzept
  • Datenkapselung
  • Attribute und Methoden
  • Instantiierung von Objekten
  • Konstruktoren und Destruktoren
  • Vererbung
  • Funktionsüberladung
  • Operatorüberladung
  • Typenkonvertierung
  • Sichtbarkeitskonzept
  • Polymorphie
  • Virtuelle Methoden
  • Abstrakte Klassen
  • Mehrfachvererbung
  • Exception Handling
  • Templates
  • Funktionstemplates
  • Klassentemplates
  • Der C++-Compiler
  • Der Linker
  • Wie verhält sich C++ im Vergleich zu C im Embedded System?
  • Welche Entscheidungen fällt der ANSI-C++ Standard für die Embedded Entwicklung?
  • Welche grundsätzlichen Fehler kann man beim Einsatz von C++ machen?
  • Welche Auswirkungen haben unterschiedliche Speicherverwaltungsstrategien für Applikationsdaten auf das Gesamtsystem?
  • Welche praktischen Auswirkungen haben physikalische und virtuelle Speicherverwaltung auf das Design von Software?
  • Was bedeutet Speicherfragmentierung und wie beherrscht man Probleme damit?
  • Welche Auswirkungen haben der Einsatz von Polymorphie auf Laufzeit und Größe des Programmcodes?
  • Wie können Templates eingesetzt werden?
  • Laufzeitaspekte der Standard Template Library.
  • Exception Handling im Embedded System: Laufzeit, Strukturierung und Footprint.
  • Fehlerbehandlung und Code-Coverage.
  • Entwicklung nebenläufiger Systeme.
  • Tracing, Logging und zeitliches Verhalten.

Es kann ein beliebiger ANSI/ISO-C++ Compiler eingesetzt werden - vorzugsweise GCC C++. Je nach Bedarf können Übungen direkt auf einem Embedded System ausgeführt werden. Dafür gibt es unterschiedliche Lösungen von der echten Hardware bis zur Simulation. Wenn ein spezielles System zum Einsatz gebracht werden soll, müssen die Rahmenbedingungen und die Machbarkeit vor dem Kurs noch abgesprochen werden. Sehr gerne setze ich QNX und Embedded Linux ein. Der Kurs kann auch mit Beispielen durchgeführt werden, die man auf PCs unter Windows, Linux oder Mac OS zum Laufen bringt.

Anfragen telefonisch unter: 0179-2292471