Kursbeschreibung
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 unnötiger 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
- 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 Variablen
- 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
- Teilen von benutzererstellten Codedefinitionen mit anderen 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 Code-Partitionierung
- 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
Voraussetzungen:
Dauer: 3 Tag
Sprachen: Deutsch, English, 中文, 日本語, 한국어