Experience Embedded

Professionelle Schulungen, Beratung und Projektunterstützung

Embedded-Software-Design und Patterns mit C

  • Inhalt
     
  • Ziele -
    Ihr Nutzen
  • Teilnehmer
     
  • Voraussetzungen
     

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. Immer mehr Systemfunktionalität verlagert sich in der Software. In der Konsequenz muss die Software aus Architektur und Design entstehen. Die VHIT- (vom Hirn ins Terminal) Methode ist längst nicht mehr anwendbar. Stattdessen wenden Sie erfolgreiche Methoden für das Software-Design mit C-Programmierung an. 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. Sie kennen für die Embedded-Softwareentwicklung wichtigen Programmierprinzipien und Design Pattern, können diese in C programmieren und in Ihren Projekten anwenden. Sie beherrschen die objektorientierte Programmierung und Implementierung, auch von Zustandsautomaten in C. Sie sind mit den Mechanismen eines Embedded-/Echtzeitbetriebssystems vertraut und in der Lage, Hardware-Treiber, Interrupt-Konzepte und Callback-Strukturen in C umzusetzen. In all diesen Punkten können Sie Regeln für "Design-for-Test" (DFT) berücksichtigen. Mittels Refactoring kennen Sie Möglichkeiten zur Qualitätsverbesserung von vorhandenem C-Programmcode (Legacy Code).

Der Kurs Embedded-Software-Design und Patterns in C richtet sich an Programmierer, Software-Entwickler, Software-Designer und Software-Architekten, die C für Embedded-Software-Applikationen einsetzen.

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

Themeneinleitung Embedded-Software-Design

  • Definition Software-Design
  • Einordnung in den gesamten Entwicklungsprozess
  • Die Rolle des Software-Designers

Objektorientierung in C

  • Klassen und Objekte
  • Relationen: Dependency, Assoziation, Aggregation, Komposition, Vererbung
  • Interfaces und virtuelle Funktionen
  • Übung: Sie designen und implementieren Klassen sowie Objekte mit verschiedenen Relationen, führen diese auf einem Embedded-Target aus und testen sie. Mit jeder Übung wächst Schritt für Schritt eine Messgeräte-Applikation.

Ausgewählte Design-Prinzipien mit C umgesetzt

  • DRY, KISS, Vorsicht vor Optimierungen
  • SLA, SRP, Dependency Inversion
  • Prinzip der geringsten Überraschungen
  • Open/Closed-Prinzip, Law of Demeter, YAGNI
  • Source-Code-Konventionen, MISRA

Ausgewählte Design Patterns

  • Softwarearchitektur-Pattern: Layer, Blackboard, Pipes and Filters, Client Server, Model View Controller (MVC), Microkernel .
  • Softwaredesign-Pattern: Builder/Manager, Facade, Strategy
  • Hardwarezugriff-Pattern: HW Proxy, HW Adapter, Mediator, Observer, Debouncing, Interrupt, Polling
  • Safety and Reliability One's Complement, CRC, Smart Data, Channel, Protected Single Channel, Multi-Channel (Dual, Triple), Sanity Check, Monitor Actuator
  • Übung: Sie wenden in der Messgeräte-Applikation die o.a. Pattern teilweise an

Zustandsautomaten

  • Entwurf
  • Implementierungsvarianten: Switch-Case, Tabelle, State-Pattern
  • Übung: Sie designen und implementieren den objektorientierten Zustandsautomaten der Messgeräte-Applikation

Betriebssystem

  • Mechanismen in der Übersicht: Task-Management, Scheduler, Synchronisation, Kommunikation, Ressourcen-Managament, Zeit-Management, Interrupt-Management, Speichermanagement
  • Praxisbeispiel: Anwendungen der Mechanismen in der Messgeräte-Applikation

Callback Strukturen

  • Kommunikation zwischen Architekturelementen
  • Designregeln
  • Synchron, asynchron
  • Callback-Struktur prozedural und objektorientiert
  • Callback-Struktur mit und ohne Betriebssystem
  • Variationsmöglichkeiten
  • Qualitativ hochwertige Software-Architektur mit Callback-Strukturen
  • Übung: Sie designen und implementieren eine objektorientierte Callback-Struktur in der Messgeräte-Applikation.

Hardware-Treiberkonzepte und Interrupts

  • Architekturrichtlinien
  • Software Layer Pattern
  • Praxisbeispiele von Softwareschichten-Architekturen
  • Objektorientierte Treiberkonzepte
  • Interrupt-Handling
  • Praxistipps: Standards und Quellen zu Treiberkonzepten Übung: Sie designen und implementieren einen Treiber und den dazugehörigen Treiberzugriff in der Messgeräte-Applikation.

Ausgewählte Refactorings in C

  • Randbedingungen für erfolgreiches Refactoring
  • Kleine und große Schritte
  • Smells
  • Refactoring Patterns

Praktische Übungen

  • Für die durchgängige Übung (Messgeräte-Applikation) 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 Lösungen aus dem Workshop mitzunehmen:
  • Sie nehmen eine Kopie Ihrer Übungen und die von MicroConsult entwickelten Lösungen 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 erhalten alle C-Beispiele und UML-Modelle in elektronischer Form und können diese sehr einfach für Ihr Entwicklungsenvironment anpassen.
  • Ferner erhalten Sie eine Tool- und Software-Komponentenübersicht für die Entwicklung von Embedded-Software.
  • Sie bekommen zudem die Notationsübersicht für UML (Unified 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

Zustandsautomaten (Finite State Machines, FSM): Entwurf und Implementierung mit C
Trainings-Code: FSM-C

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

RTOS-Anwendung: Entwicklung von Laufzeit-Architekturen für Embedded- und Echtzeitsysteme
Trainings-Code: RTOS-RTA

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


Verwandte Trainings

Offenes Training

TerminPreis *Dauer
19.02. – 22.02.20182.000,00 €4 Tage 
18.06. – 21.06.20182.000,00 €4 Tage 
15.10. – 18.10.20182.000,00 €4 Tage 
28.01. – 31.01.20192.000,00 €4 Tage 
Anmeldecode: ESD-C
* 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-Software-Design und Patterns mit C

Inhalt

Themeneinleitung Embedded-Software-Design

  • Definition Software-Design
  • Einordnung in den gesamten Entwicklungsprozess
  • Die Rolle des Software-Designers

Objektorientierung in C

  • Klassen und Objekte
  • Relationen: Dependency, Assoziation, Aggregation, Komposition, Vererbung
  • Interfaces und virtuelle Funktionen
  • Übung: Sie designen und implementieren Klassen sowie Objekte mit verschiedenen Relationen, führen diese auf einem Embedded-Target aus und testen sie. Mit jeder Übung wächst Schritt für Schritt eine Messgeräte-Applikation.

Ausgewählte Design-Prinzipien mit C umgesetzt

  • DRY, KISS, Vorsicht vor Optimierungen
  • SLA, SRP, Dependency Inversion
  • Prinzip der geringsten Überraschungen
  • Open/Closed-Prinzip, Law of Demeter, YAGNI
  • Source-Code-Konventionen, MISRA

Ausgewählte Design Patterns

  • Softwarearchitektur-Pattern: Layer, Blackboard, Pipes and Filters, Client Server, Model View Controller (MVC), Microkernel .
  • Softwaredesign-Pattern: Builder/Manager, Facade, Strategy
  • Hardwarezugriff-Pattern: HW Proxy, HW Adapter, Mediator, Observer, Debouncing, Interrupt, Polling
  • Safety and Reliability One's Complement, CRC, Smart Data, Channel, Protected Single Channel, Multi-Channel (Dual, Triple), Sanity Check, Monitor Actuator
  • Übung: Sie wenden in der Messgeräte-Applikation die o.a. Pattern teilweise an

Zustandsautomaten

  • Entwurf
  • Implementierungsvarianten: Switch-Case, Tabelle, State-Pattern
  • Übung: Sie designen und implementieren den objektorientierten Zustandsautomaten der Messgeräte-Applikation

Betriebssystem

  • Mechanismen in der Übersicht: Task-Management, Scheduler, Synchronisation, Kommunikation, Ressourcen-Managament, Zeit-Management, Interrupt-Management, Speichermanagement
  • Praxisbeispiel: Anwendungen der Mechanismen in der Messgeräte-Applikation

Callback Strukturen

  • Kommunikation zwischen Architekturelementen
  • Designregeln
  • Synchron, asynchron
  • Callback-Struktur prozedural und objektorientiert
  • Callback-Struktur mit und ohne Betriebssystem
  • Variationsmöglichkeiten
  • Qualitativ hochwertige Software-Architektur mit Callback-Strukturen
  • Übung: Sie designen und implementieren eine objektorientierte Callback-Struktur in der Messgeräte-Applikation.

Hardware-Treiberkonzepte und Interrupts

  • Architekturrichtlinien
  • Software Layer Pattern
  • Praxisbeispiele von Softwareschichten-Architekturen
  • Objektorientierte Treiberkonzepte
  • Interrupt-Handling
  • Praxistipps: Standards und Quellen zu Treiberkonzepten Übung: Sie designen und implementieren einen Treiber und den dazugehörigen Treiberzugriff in der Messgeräte-Applikation.

Ausgewählte Refactorings in C

  • Randbedingungen für erfolgreiches Refactoring
  • Kleine und große Schritte
  • Smells
  • Refactoring Patterns

Praktische Übungen

  • Für die durchgängige Übung (Messgeräte-Applikation) 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 Lösungen aus dem Workshop mitzunehmen:
  • Sie nehmen eine Kopie Ihrer Übungen und die von MicroConsult entwickelten Lösungen 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 erhalten alle C-Beispiele und UML-Modelle in elektronischer Form und können diese sehr einfach für Ihr Entwicklungsenvironment anpassen.
  • Ferner erhalten Sie eine Tool- und Software-Komponentenübersicht für die Entwicklung von Embedded-Software.
  • Sie bekommen zudem die Notationsübersicht für UML (Unified Modeling Language) im A3-Format.

Merkzettel


Sie haben derzeit keine Trainings auf dem Merkzettel.