Schulungen zu MATLAB und Simulink

Entwicklung von Embedded Software mit dem Embedded Coder

Programm ansehen und anmelden

Kursbeschreibung

In diesem dreitägigen Kurs bereiten Sie Modelle in der Simulink®-Umgebung für die Implementierung in eingebetteten Systemen vor. Sie generieren, validieren und implementieren C Code mithilfe von Embedded Coder®.

Themen sind unter anderem:
  • Struktur und Ausführung von generiertem Code
  • Codegenerierungsoptionen und Optimierungen
  • Integrieren von generiertem Code und externem Code
  • Generieren von Code für Multiraten-Systeme und nichtperiodische Systeme
  • Anpassen von generiertem Code
  • Anpassen von Daten
  • Testen von generiertem Code auf der Zielhardware
  • Bereitstellen von generiertem Code

Tag 1 von 3


Codegenerierung für eingebettete Systeme

Ziel: Aus einem Simulink-Modell C-Code generieren und den generierten Code interpretieren, um einen Überblick über die Verwendung von Embedded Coder zu erhalten.

  • Architektur einer eingebetteten Anwendung
  • Beschreibung des Beispiels
  • Generieren von Code
  • Codemodule
  • Aufzeichnen von Zwischensignalen
  • Datenstrukturen im generierten Code
  • Verifizieren des generierten Codes
  • Build-Prozess von Embedded Coder®

Optimieren von generiertem Code

Ziel: Identifizieren von Anforderungen an den generierten Code wie z.B. Effizienz oder Sicherheit und Anpassen der Modellkonfiguration, um diese Anforderungen zu erfüllen.

  • Überlegungen zur Optimierung
  • Entfernen unnötigen Codes
  • Entfernen von überflüssiger Datenunterstützung
  • Optimieren der Datennutzung (Signal Storage)
  • Analysieren des Laufzeitverhaltens des generierten Codes
  • Codegenerierungsziele

Integrieren von generiertem Code mit externem Code

Ziel: Simulink-Modelle und externe Dateien vorbereiten, um mit Embedded Coder generierten und externen Code zusammenführen zu können.

  • Überblick über die Integration von externem Code
  • Übersicht über Modelleinsprungspunkte
  • Aufrufen von generiertem Code
  • Integrieren von generiertem Code in ein externes Projekt
  • Festlegen des Speicherorts für den generierten Code
  • Packen des generierten Codes

Festlegen der Funktionsprototypen

Ziel: Anpassen von Funktionsprototypen der Modelleinsprungspunkte im generierten Code, um Funktionsargumente wahlweise per Pointer oder direkt zu übergeben.

  • Standardfunktionsprototypen
  • Ändern der Funktionsprototypen
  • Codegenerierung mit geänderten Funktionsprototypen
  • Überlegungen zu Funktionsprototypen
  • Schnittstellen für wiederverwendbare Funktionen
  • Ändern der Standardfunktionsprototypen

Tag 2 von 3


Anpassen von Dateneigenschaften in Simulink®

Ziel: Einstellen von Datentypen und Speicherklassen (Storage Classes) von Daten in Simulink-Modellen, um C-Code generieren zu können, der mit externen Code-Modulen integriert werden kann.

  • Dateneigenschaften
  • Klassifizierung von Datentypen
  • Konfigurieren von Datentypen in Simulink
  • Festlegen von Speicherklassen für Signale
  • Festlegen von Speicherklassen für Zustände
  • Auswirkung der Speicherklasse auf die Namensgebung von Symbolen

Festlegen von Dateneigenschaften mit Datenobjekten

Ziel: Festlegen des Datentyps und der Speicherklasse von Daten mit Datenobjekten, um die Flexibilität und Wartbarkeit von Modellen zu verbessern.

  • Überblick über die Datenobjekte in Simulink®
  • Festlegen von Datentypen mit Datenobjekten
  • Erstellen rekonfigurierbarer Datentypen
  • Festlegen von Speicherklassen mit Datenobjekten
  • Festlegen der Namen von Datentypen und Variablennamen
  • Data Dictionarys

Definieren eigener Speicherklassen

Ziel: Entwerfen eigener Speicherklassen, um die bestehenden Möglichkeiten zur Integration mit externem Code zu erweitern.

  • Benutzerdefinierte Speicherklassen
  • Erstellen von Speicherklassen
  • Verwenden benutzerdefinierter Speicherklassen
  • Verwenden benutzerdefinierter Speicherklassen in mehreren Modellen

Anpassen der Architektur von generiertem Code

Ziel: Verwenden von Komponenten wie atomaren Subsystemen oder Varianten, um die Architektur des generierten Codes festzulegen.

  • Architektur eines Simulink-Modells
  • Konfigurieren der Codepartitionierung
  • Generieren von wiederverwendbarem Code für Subsysteme
  • Generieren von Code für Komponentenvarianten
  • Optionen zur Codeplatzierung

Modellreferenzierung und Bus-Objekte

Ziel: Verwenden von Busobjekten und Signalobjekten, um an Modellschnittstellen die Datentypen innerhalb eines Bussignals und die Speicherklasse des Bussignals für die Codeerzeugung konfigurieren zu können.

  • Generieren wiederverwendbaren Codes mit Modellreferenzen
  • Einstellen des Datentyps eines Bussignals
  • Einstellen der Speicherklasse eines Bussignals
  • SIL-Verifikation generierter Software mit Modellreferenzen

Tag 3 von 3


Scheduling des generierten Codes

Ziel: Simulink-Modelle mit mehreren Abtastraten so konfigurieren, dass der generierte Code im Single-Tasking-Modus, Multi-Tasking-Modus oder über Function Calls implementiert werden kann.

  • Ausführungsschemata für Einzelraten- und Multiraten-Systeme
  • Codegenerierung für Einzelraten-Modelle
  • Codegenerierung für Multiratenmodelle im Single-Tasking Modus
  • Codegenerierung für Multiratenmodelle im Multi-Tasking Modus
  • Generieren exportierbarer Funktionen

Testen von generiertem Code auf der Zielhardware

Ziel: Mittels Processor-in-the-loop-Simulation (PIL) den generierten Code auf der Zielhardware ausführen, um den Code zu validieren, Ausführungszeiten zu messen und den Code zu optimieren.

  • Überblick über die Hardwareunterstützung
  • Einrichten eines Arduino-Boards
  • Validieren von generiertem Code auf der Zielhardware
  • Überblick über die Optimierung der Zielhardware
  • Messen der Ausführungszeiten des generierten Codes auf der Zielhardware
  • Verwenden von Code Replacement Libraries
  • Erstellen eigener Code Replacement Libraries

Implementieren generierten Codes

Ziel: Erzeugen einer Echtzeitanwendung zur Implementierung auf einem Arduino®-Board mittels zur Verfügung stehender Hardwareunterstützung.

  • Architektur eingebetteter Anwendungen
  • Erstellen eines Harnisch für die Implementierung
  • Verwenden von Gerätetreiber-Blöcken
  • Ausführen einer Echtzeitanwendung
  • External Mode

Integrieren von Gerätetreibern

Ziel: Verwenden des Legacy Code Tools, um bestehende Gerätetreiber mit Simulink so zu integrieren, dass sie bei der Codeerzeugung eingebunden werden.

  • Überblick über Gerätetreiber
  • Verwenden des Legacy Code Tools
  • Anpassen von Gerätetreiberkomponenten
  • Entwickeln von Gerätetreiber-Blöcken für Arduino

Verbesserung der Codeeffizienz und Konformität

Ziel: Verwenden des Model Advisor, um die Konformität eines Simulink-Modells mit Standards und Richtlinien sicherzustellen.

  • Der Model Advisor
  • Parameter zur Implementierung auf Hardware
  • Konformität mit Standards und Richtlinien

Stufe: Aufbaukurse

Dauer: 3 Tag

Sprachen: Deutsch, English, Français, 日本語, 한국어, 中文

Programm ansehen und anmelden