Experience Embedded

Professionelle Schulungen, Beratung und Projektunterstützung

Embedded C++: Objektorientierte Programmierung für Mikrocontroller mit C++/EC++ und UML

Meistern Sie die Herausforderung bei der Softwareentwicklung für Hard-Realtime-Systeme: Die heutigen Embedded-Systeme mit komplexen Mikrocontroller- und Prozessorarchitekturen enthalten immer mehr Software, die aber in immer kürzerer Zeit geplant und realisiert werden muss. Häufig sind Vorgaben zu erfüllen, in denen Normen und sicherheitskritische Aspekte berücksichtigt werden müssen. Echtzeitfähigkeit, Wiederverwendbarkeit, Anpassbarkeit an veränderte Rahmenbedingungen und leichte Lesbarkeit der Software spielen eine immer größere Rolle.

  • Inhalt
     
  • Ziele -
    Ihr Nutzen
  • Teilnehmer
     
  • Voraussetzungen
     

Sie kennen nach dem EC++ Workshop die Möglichkeiten, die ein objektorientierter Ansatz bietet, um auch in der Embedded-Welt in kürzerer Zeit qualitativ hochwertige Software zu entwickeln. Der im Workshop vermittelte Überblick über den gesamten Entwicklungsprozess von Embedded-Realtime-Systemen - Software-Analyse, Software-Design, Software-Implementierung und Unit-Test - gibt Ihnen das Rüstzeug, um Projekte mit EC++ zu erstellen. Sie wissen, wie Sie das Design von Software-Systemen mithilfe der UML und der Implementierung in der Programmiersprache C++ gestalten. Damit verfügen Sie über die Wissensbasis zur Erfüllung besonderer Anforderungen an die Software-Qualität von Embedded-Systemen, zum Beispiel im Hinblick auf Laufzeit und Codeeffizienz. Ferner vermeiden Sie mithilfe von Programmierrichtlinien, z.B. Beispiel dem MISRA-C++ Standard, frühzeitig Programmierfehler. Sie entwickeln mit modernen objektorientierten Techniken qualitativ hochwertige und komplexe Softwaresysteme und sparen dabei Zeit und Geld.

Der EC++ Kurs richtet sich an Programmierer, Software-Entwickler, Software-Designer und Software-Architekten, die C++ für Embedded-Softwareapplikationen unter Verwendung objektorientierter Konzepte einsetzen.

Sie sollten über solide C-Programmierkenntnisse verfügen; Mikrocontroller-Grundkenntnisse sind von Vorteil.

Einführung in die objektorientierte Begriffswelt

  • Klasse und Objekt
  • Attribut, Operation, Methode
  • Kapselung
  • Relation (Beziehung) zwischen Klassen
  • Nutzen und Vorteile der objektorientierten Softwareentwicklung
  • Demonstration des objektorientierten Ansatzes an einem Hardwaretreiber-Beispiel

Objektorientiertes Programmieren in C

  • Klassen, Attribute, Operationen und Objekte
  • Möglichkeiten der Kapselung in C
  • Assoziation, Aggregation, Komposition und Vererbung
  • Praxistipps mit bewährten Umsetzungsmöglichkeiten

Einführung in die Programmiersprache C++ (EC++)

  • Migration von objektorientierter Programmierung mit C zu C++/EC++
  • Klasse, Attribute, Operationen und Objekte
  • Möglichkeiten der Kapselung in C++
  • Konstruktoren, Destruktor, Überladen
  • Modifizierer für Daten, Operationen und Objekte
  • Speichermanagement für Objekte
  • Weitere C++ spezifische Mechanismen und Konstrukte
  • Assembleranalysen von C++ Konstrukten
  • Speicher- und laufzeitorientierte Einschätzung und Optimierung
  • Vergleich zu C
  • Verbesserung von Qualitätsmerkmalen wie Wartbarkeit und Wiederverwendbarkeit
  • Risiken erkennen, Stolpersteine vermeiden
  • Übung: Sie implementieren, instanziieren und testen eine Klasse

Relationen zwischen Klassen und deren Programmierung mit C++

  • Assoziation
  • Aggregation
  • Komposition
  • Vererbung
  • Richtige Relationsauswahl im Design treffen
  • Varianten der Implementierung mit C++
  • Ansätze der Implementierung in C
  • Assembleranalysen von C++ Konstrukten
  • Speicher- und laufzeitorientierte Einschätzung und Optimierung
  • Verbesserung von Qualitätsmerkmalen wie Wartbarkeit und Wiederverwendbarkeit
  • Übung: Sie implementieren die Relationen Assoziation, Vererbung und Komposition in der Applikation und bei der Anwendung des Builder-Patterns

Virtuelle Methoden und Interfaces mit C++

  • Dynamische (späte) Bindung
  • Rein virtuelle Funktionen/ Operationen
  • Polymorphismus
  • Von der abstrakten Klasse zur Interface-Klasse
  • Software-Architektur mit Interfaces
  • Nutzen, Vorteile und Nachteile von Interface-Klassen
  • Implementierung mit C++
  • Assembleranalysen von C++ Konstrukten
  • Speicher- und laufzeitorientierte Einschätzung und Optimierung
  • Verbesserung von Qualitätsmerkmalen wie Wartbarkeit und Wiederverwendbarkeit
  • Übung: Sie programmieren eine Interface-Klasse mit rein virtuellen Funktionen, implementieren diese und greifen darauf zu

C++ für Embedded-Applikationen

  • Anwendung von C++ in der Embedded-Softwareentwicklung
  • Historie
  • Empfehlungen und Regelwerke
  • C++ Compiler-Prinzipien

C++ Klassenbibliotheken

  • Statische versus dynamische Klassenbibliotheken
  • Erzeugung und Einbindung von Klassenbibliotheken
  • Vor- und Nachteile bei der Verwendung in Embedded-Software
  • Demonstration eines Beispiels

Zustandsautomaten mit C++

  • Prinzipielle Möglichkeiten der Implementierung
  • Vorstellung der Tabellen-basierten Abarbeitung von Zustandsautomaten
  • Demonstration eines Beispiels

Hardwaretreiber und Interrupts mit C++

  • Typische Embedded-SW-Architekturen und deren Darstellung (Schichtenmodell, Interfaces)
  • Objektorientierte Callback-Strukturen
  • Hardwaretreiber mit Peripherie-Registerzugriff objektorientiert in C++
  • Interrupt-Konzepte und Interrupt-Service Routinen objektorientiert mit C++
  • Programmieren von Zustandsautomaten
  • Verbesserung von Qualitätsmerkmalen wie Wartbarkeit und Wiederverwendbarkeit
  • Übung: Sie wenden einen objektorientierten Timer-Treiber zusammen mit einem Timer-Interrupt in Ihrer Übungsapplikation an

Übersicht Embedded-Software-Test

  • Software-Implementierung und -Test
  • Testprozess
  • Checkliste zum Test objektorientierter Software

Grundlegende Notationen mit der UML (Unified Modeling Language)

  • Darstellung von Klassen, Objekten und Relationen mit der UML
  • Use-Case-, Sequenz-, Aktivitäten- und Zustandsfolge-Diagramm
  • Demonstration der Übung im UML-Modell - Aspekt: Diagramme

Von der Projektplanung bis zur Implementierung

  • Software-Entwicklungsprozess
  • Qualität von Embedded-Softwaresystemen
  • Praxisgerechte Modellierung einer Embedded-Applikation mit der UML
  • Demonstration der Übung im UML-Modell - Aspekt: Modellentstehung und Aufbau

Praktische Übungen im Workshop

  • Für die durchgängige Übung (Uhrenapplikation) verwenden Sie das ARM Keil MDK (Microcontroller Development Kit) zusammen mit einer realen Hardware basierend auf einem ARM CortexTM M3 Mikrocontroller.

MicroConsult Plus:

  • Als Teilnehmer haben Sie die folgenden Möglichkeiten, um Ihre Übungen und die von MicroConsult entwickelten Lösungen aus dem Workshop mitzunehmen:
  • Sie nehmen die Dateien direkt auf einem von MicroConsult bereitgestellten kostenfreien USB-Stick mit, oder …
  • Sie senden sich die Dateien selbst per E-Mail zu, oder …
  • Sie erhalten auf Anfrage Zugriff auf die Dateien per Download.
  • Sie bekommen alle C- und C++ Beispiele in elektronischer Form und können diese sehr einfach für Ihr Entwicklungsenvironment anpassen.
  • Sie erhalten zudem eine Tool- und Software-Komponentenübersicht für die Entwicklung von Embedded-Software.
  • Sie bekommen hilfreiche Notationsübersichten für UML (Unified Modeling Language) und SysML (Systems Modeling Language) im A3 Format.


Im Preis enthalten:

Mittagessen, Getränke, Trainingsunterlagen und Teilnahmezertifikat


Für Personalabteilungen

Sie können in unserem Online-Formular bis zu 5 Teilnehmer auf ein Training buchen.
Möchten Sie mehrere Teilnehmer auf verschiedene Trainings buchen, kontaktieren Sie uns bitte!

Bitte beachten Sie auch unser Bonusprogramm bei der gleichzeitigen Buchung von mehreren Trainings und/oder Teilnehmern.

Für Personalabteilungen

Verwandte Trainings

Embedded C Schulung: Programmiermethoden und -tools für Embedded-Anwendungen
Trainings-Code: EMB-C

DSP-Grundlagen: Applikationen mit dem Mikrocontroller
Trainings-Code: DSP-WORK

RTOS-Grundlagen und Anwendung: Mechanismen und deren Einsatz in Laufzeit-Architekturen für Embedded- und Echtzeitsysteme
Trainings-Code: RTOS-ARCH

OSEK-Grundlagen
Trainings-Code: OSEK

Embedded-Multicore-Mikrocontroller in der Praxis
Trainings-Code: µC-MULTI

UML-Schulung: UML-Grundlagen und Einstieg in die modellbasierte Softwareentwicklung
Trainings-Code: UML-G

Software-Architektur-Schulung für Embedded-Systeme und Echtzeitsysteme
Trainings-Code: EMB-ARCH


Verwandte Trainings

Offenes Training

Für die mit gekennzeichneten Termine bieten wir eine Durchführungsgarantie an.

TerminPreis *Dauer
06.11. – 10.11.20172.250,00 €4,5 Tage
15.01. – 19.01.20182.250,00 €4,5 Tage 
05.03. – 09.03.20182.250,00 €4,5 Tage 
14.05. – 18.05.20182.250,00 €4,5 Tage 
03.09. – 07.09.20182.250,00 €4,5 Tage 
05.11. – 09.11.20182.250,00 €4,5 Tage 
14.01. – 18.01.20192.250,00 €4,5 Tage 
18.03. – 22.03.20192.250,00 €4,5 Tage 
Anmeldecode: EC++
* Alle Preise zzgl. der gesetzlichen USt.


> Download Blanko-Anmeldeformular
> Trainingsbeschreibung als PDF

Inhouse Training

In maßgeschneiderten Workshops kombinieren wir Ihre konkreten Projektaufgaben mit unserem Trainingsangebot. Dabei berücksichtigen wir Ihre Anforderungen bezüglich Inhalt, Zeit, Ort, Dauer, technischem Umfeld und Vermittlungsmethodik.

Für Ihre Anfrage oder weiterführende Informationen stehen wir Ihnen gern zur Verfügung.

> Trainingsbeschreibung als PDF

Coaching

Unsere Coaching-Angebote bieten den großen Vorteil, dass unsere Experten ihr Wissen und ihre Erfahrungen direkt in Ihren Lösungsprozess einbringen und damit unmittelbar zu Ihrem Projekterfolg beitragen.

Für Ihre Anfrage oder weiterführende Informationen stehen wir Ihnen gern zur Verfügung.

Embedded C++: Objektorientierte Programmierung für Mikrocontroller mit C++/EC++ und UML

Inhalt

Einführung in die objektorientierte Begriffswelt

  • Klasse und Objekt
  • Attribut, Operation, Methode
  • Kapselung
  • Relation (Beziehung) zwischen Klassen
  • Nutzen und Vorteile der objektorientierten Softwareentwicklung
  • Demonstration des objektorientierten Ansatzes an einem Hardwaretreiber-Beispiel

Objektorientiertes Programmieren in C

  • Klassen, Attribute, Operationen und Objekte
  • Möglichkeiten der Kapselung in C
  • Assoziation, Aggregation, Komposition und Vererbung
  • Praxistipps mit bewährten Umsetzungsmöglichkeiten

Einführung in die Programmiersprache C++ (EC++)

  • Migration von objektorientierter Programmierung mit C zu C++/EC++
  • Klasse, Attribute, Operationen und Objekte
  • Möglichkeiten der Kapselung in C++
  • Konstruktoren, Destruktor, Überladen
  • Modifizierer für Daten, Operationen und Objekte
  • Speichermanagement für Objekte
  • Weitere C++ spezifische Mechanismen und Konstrukte
  • Assembleranalysen von C++ Konstrukten
  • Speicher- und laufzeitorientierte Einschätzung und Optimierung
  • Vergleich zu C
  • Verbesserung von Qualitätsmerkmalen wie Wartbarkeit und Wiederverwendbarkeit
  • Risiken erkennen, Stolpersteine vermeiden
  • Übung: Sie implementieren, instanziieren und testen eine Klasse

Relationen zwischen Klassen und deren Programmierung mit C++

  • Assoziation
  • Aggregation
  • Komposition
  • Vererbung
  • Richtige Relationsauswahl im Design treffen
  • Varianten der Implementierung mit C++
  • Ansätze der Implementierung in C
  • Assembleranalysen von C++ Konstrukten
  • Speicher- und laufzeitorientierte Einschätzung und Optimierung
  • Verbesserung von Qualitätsmerkmalen wie Wartbarkeit und Wiederverwendbarkeit
  • Übung: Sie implementieren die Relationen Assoziation, Vererbung und Komposition in der Applikation und bei der Anwendung des Builder-Patterns

Virtuelle Methoden und Interfaces mit C++

  • Dynamische (späte) Bindung
  • Rein virtuelle Funktionen/ Operationen
  • Polymorphismus
  • Von der abstrakten Klasse zur Interface-Klasse
  • Software-Architektur mit Interfaces
  • Nutzen, Vorteile und Nachteile von Interface-Klassen
  • Implementierung mit C++
  • Assembleranalysen von C++ Konstrukten
  • Speicher- und laufzeitorientierte Einschätzung und Optimierung
  • Verbesserung von Qualitätsmerkmalen wie Wartbarkeit und Wiederverwendbarkeit
  • Übung: Sie programmieren eine Interface-Klasse mit rein virtuellen Funktionen, implementieren diese und greifen darauf zu

C++ für Embedded-Applikationen

  • Anwendung von C++ in der Embedded-Softwareentwicklung
  • Historie
  • Empfehlungen und Regelwerke
  • C++ Compiler-Prinzipien

C++ Klassenbibliotheken

  • Statische versus dynamische Klassenbibliotheken
  • Erzeugung und Einbindung von Klassenbibliotheken
  • Vor- und Nachteile bei der Verwendung in Embedded-Software
  • Demonstration eines Beispiels

Zustandsautomaten mit C++

  • Prinzipielle Möglichkeiten der Implementierung
  • Vorstellung der Tabellen-basierten Abarbeitung von Zustandsautomaten
  • Demonstration eines Beispiels

Hardwaretreiber und Interrupts mit C++

  • Typische Embedded-SW-Architekturen und deren Darstellung (Schichtenmodell, Interfaces)
  • Objektorientierte Callback-Strukturen
  • Hardwaretreiber mit Peripherie-Registerzugriff objektorientiert in C++
  • Interrupt-Konzepte und Interrupt-Service Routinen objektorientiert mit C++
  • Programmieren von Zustandsautomaten
  • Verbesserung von Qualitätsmerkmalen wie Wartbarkeit und Wiederverwendbarkeit
  • Übung: Sie wenden einen objektorientierten Timer-Treiber zusammen mit einem Timer-Interrupt in Ihrer Übungsapplikation an

Übersicht Embedded-Software-Test

  • Software-Implementierung und -Test
  • Testprozess
  • Checkliste zum Test objektorientierter Software

Grundlegende Notationen mit der UML (Unified Modeling Language)

  • Darstellung von Klassen, Objekten und Relationen mit der UML
  • Use-Case-, Sequenz-, Aktivitäten- und Zustandsfolge-Diagramm
  • Demonstration der Übung im UML-Modell - Aspekt: Diagramme

Von der Projektplanung bis zur Implementierung

  • Software-Entwicklungsprozess
  • Qualität von Embedded-Softwaresystemen
  • Praxisgerechte Modellierung einer Embedded-Applikation mit der UML
  • Demonstration der Übung im UML-Modell - Aspekt: Modellentstehung und Aufbau

Praktische Übungen im Workshop

  • Für die durchgängige Übung (Uhrenapplikation) verwenden Sie das ARM Keil MDK (Microcontroller Development Kit) zusammen mit einer realen Hardware basierend auf einem ARM CortexTM M3 Mikrocontroller.

MicroConsult Plus:

  • Als Teilnehmer haben Sie die folgenden Möglichkeiten, um Ihre Übungen und die von MicroConsult entwickelten Lösungen aus dem Workshop mitzunehmen:
  • Sie nehmen die Dateien direkt auf einem von MicroConsult bereitgestellten kostenfreien USB-Stick mit, oder …
  • Sie senden sich die Dateien selbst per E-Mail zu, oder …
  • Sie erhalten auf Anfrage Zugriff auf die Dateien per Download.
  • Sie bekommen alle C- und C++ Beispiele in elektronischer Form und können diese sehr einfach für Ihr Entwicklungsenvironment anpassen.
  • Sie erhalten zudem eine Tool- und Software-Komponentenübersicht für die Entwicklung von Embedded-Software.
  • Sie bekommen hilfreiche Notationsübersichten für UML (Unified Modeling Language) und SysML (Systems Modeling Language) im A3 Format.

Merkzettel


Sie haben derzeit keine Trainings auf dem Merkzettel.