Zum 01. September 2024 ging der Geschäftsbetrieb der MicroConsult Microelectronics Consulting & Training GmbH über an die MicroConsult Academy GmbH. Diese wird das Geschäft in vollem Umfang, mit dem bewährten Personal und mit der gewohnten hohen Qualität weiterführen. Ihre Fragen beantworten wir gerne unter kontakt@microconsult.com.

Experience Embedded

Professionelle Schulungen, Beratung und Projektunterstützung

Embedded-Software-Design und Patterns mit C - Live-Online-Training

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 die 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.

  • Inhalt
     
  • Ziele -
    Ihr Nutzen
  • Teilnehmer
     
  • Voraussetzungen
     

Sie lernen die für die Embedded-Softwareentwicklung wichtigen Programmierprinzipien und Design Patterns kennen und können diese in C programmieren und in Ihren Projekten anwenden.

Beherrschen Sie die objektorientierte Programmierung und Implementierung, auch von Zustandsautomaten in C, und machen Sie sich mit den Mechanismen eines Embedded-/Echtzeitbetriebssystems vertraut.

So sind Sie in der Lage, Hardware-Treiber, Interrupt-Konzepte und Callback-Strukturen in C umzusetzen.

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. Patterns 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 Cortex™-M7 Mikrocontroller.

MicroConsult PLUS:

  • Sie erhalten von uns Ihre Übungsverzeichnisse und Lösungsbeispiele für alle Übungsaufgaben.
  • 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 Preis enthalten:
Trainingsdokumentation, Ihr Zertifikat sowie ggf. erforderliche Ziel-HW o.ä.


ALL INCLUSIVE!

Spätestens 3 Wochen vor Trainingsbeginn erhalten Sie eine verbindliche Durchführungsbestätigung.

Einige Tage vor dem Live-Online-Training erhalten Sie von uns E-Mails mit …

  • ausführlichen Infos rund um Ihr Training
  • Ihre Schulungsunterlagen (Download-Link)
  • einer Einladung zu einer optionalen Probesession mit dem Trainer
  • einer Einladung für die Schulungstage, mit Link und Zugangsdaten

Ggf. erforderliche Übungs-HW senden wir Ihnen rechtzeitig vorab zu.


ABLAUF

Verwandte Trainings

Clean Code für C-Programme: Softwareentwicklung als Handwerkskunst - Der Weg zum Clean Code - Live-Online-Training
Anmeldecode: L-CLEANC

Embedded C Schulung: Programmiermethoden und -tools für Embedded-Anwendungen - Live-Online-Training
Anmeldecode: L-EMB-C

RTOS-Grundlagen und Anwendung: Mechanismen und deren Einsatz in Laufzeit-Architekturen für Embedded- und Echtzeitsysteme - Live-Online-Training
Anmeldecode: L-RTOS-AR

RTOS-Anwendung: Entwicklung von Laufzeit-Architekturen für Embedded- und Echtzeitsysteme - Live-Online-Training
Anmeldecode: L-RTOS-RT

Software-Architektur-Schulung für Embedded-Systeme und Echtzeitsysteme - Live-Online-Training
Anmeldecode: L-EMB-AR

UML-Schulung: UML-Grundlagen und Einstieg in die modellbasierte Softwareentwicklung - Live-Online-Training
Anmeldecode: L-UML-G

UML-Praxis-Workshop: Praktischer Einsatz modellbasierter Softwareentwicklung für Embedded- und Echtzeit-Systeme - Live-Online-Training
Anmeldecode: L-UMLPRAX


Verwandte Trainings

Live Online Training

Termin Preis *Dauer
11.11. – 14.11.20242.600,00 €4 Tage
31.03. – 03.04.20252.600,00 €4 Tage 
01.09. – 04.09.20252.600,00 €4 Tage 
09.02. – 12.02.20262.600,00 €4 Tage 
Anmeldecode: L-ESD-C
* Preis je Teilnehmer, in Euro zzgl. USt.

> Download Blanko-Anmeldeformular
> Trainingsbeschreibung als PDF

Präsenz-Training - Deutsch

Termin Dauer
27.01. – 30.01.2025 4 Tage  
23.06. – 26.06.2025 4 Tage  
24.11. – 27.11.2025 4 Tage  

Live-Online - Englisch

Termin Dauer
11.11. – 14.11.2024 4 Tage  
31.03. – 03.04.2025 4 Tage  
01.09. – 04.09.2025 4 Tage  
09.02. – 12.02.2026 4 Tage  

Präsenz-Training - Englisch

Termin Dauer
27.01. – 30.01.2025 4 Tage  
23.06. – 26.06.2025 4 Tage  
24.11. – 27.11.2025 4 Tage  

Embedded-Software-Design und Patterns mit C - Live-Online-Training

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. Patterns 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 Cortex™-M7 Mikrocontroller.

MicroConsult PLUS:

  • Sie erhalten von uns Ihre Übungsverzeichnisse und Lösungsbeispiele für alle Übungsaufgaben.
  • 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).