Generieren von C oder C++ Code aus Stateflow-Blöcken
Um C oder C++ Code mit Simulink®-Modellen zu generieren, die ein Stateflow®-Diagramm enthalten, müssen Sie den Simulink Coder™ verwenden. Zusätzlich zum Simulink Coder können Sie den Embedded Coder® verwenden, um Ihren Code lesbarer, kompakter und schneller ausführbar zu machen.
Generieren von Code mithilfe von Simulink Coder
Der Simulink Coder ermöglicht es Ihnen, C und C++ Code mit Modellen zu generieren, die Stateflow-Diagramme enthalten. Sie können den generierten Code dann für Echtzeit- und Nicht-Echtzeit-Anwendungen verwenden, einschließlich:
Simulationsbeschleunigung
Rapid Prototyping
Hardware-in-the-Loop-Tests (HIL)
Wenn Sie Simulink Coder verwenden, können Sie auch auf die Modi „Accelerator“ und „Rapid Accelerator“ zugreifen. Accelerator-Modi funktionieren, indem sie Zielcode generieren, der dann zur Ausführung verwendet wird. Weitere Informationen zu diesen Modi finden Sie unter How Acceleration Modes Work (Simulink).
Mit HIL-Tests können Sie Ihr Controller-Design testen und feststellen, ob Ihr physisches Systemmodell gültig ist.
Weitere Informationen finden Sie unter Generate Code Using Simulink Coder (Simulink Coder).
Generieren von Code mithilfe von Embedded Coder
Mit dem Embedded Coder können Sie C oder C++ Code generieren, der kompakter, leichter lesbar und schneller ausführbar ist. Der Embedded Coder erweitert zusätzlich die Fähigkeiten des Simulink Coder, indem er Ihnen die Kontrolle über generierte Funktionen, Dateien und Daten ermöglicht. Darüber hinaus ermöglicht der Embedded Coder die einfache Integration von Legacy-Code, Datentypen und Kalibrierungsparametern. Der Embedded Coder unterstützt Softwarestandards für AUTOSAR, MISRA C und ASAP 2.
Der Embedded Coder bietet außerdem Support-Pakete mit erweiterten Optimierungen und Gerätetreibern für bestimmte Hardware.
Weitere Informationen finden Sie unter Generate Code Using Embedded Coder (Embedded Coder).
Optimieren des generierten Codes für Stateflow
Tipps zur Optimierung des generierten Codes von Stateflow-Objekten finden Sie unter Design Techniques to Optimize Stateflow Objects for Code Generation (Embedded Coder).
Generieren von Code für Rapid Prototyping und Produktionsbereitstellung
Ziel | Simulink Coder-Dokumentation | Embedded Coder-Dokumentation |
---|---|---|
Generieren von C/C++ Quellcode | Source Code Generation (Simulink Coder) | Source Code Generation (Embedded Coder) |
Generieren von C/C++ Quellcode und Erstellen einer ausführbaren Datei | Generated Code Compilation (Simulink Coder) | Generated Code Compilation (Embedded Coder) |
Integrieren von externem Code | External Code Import (Simulink Coder) | External Code Import (Embedded Coder) |
Integrieren von externem Code nur für Bibliotheksdiagramme in einer portablen, eigenständigen Bibliothek zur Verwendung in mehreren Modellen | Integrate External Code with Library Charts (Simulink Coder) | Integrate External Code with Library Charts (Embedded Coder) |
Optimieren von generiertem Code | Code Efficiency (Simulink Coder) | Code Efficiency (Embedded Coder) |
Rückverfolgbarkeit von Stateflow-Objekten in generiertem Code
Kommentare zur Rückverfolgbarkeit bieten eine Möglichkeit, Folgendes zu gewährleisten:
Validierung des generierten Codes. Sie können feststellen, welches Stateflow-Objekt einer Codezeile entspricht, und den Code verschiedener Objekte verfolgen, die Sie überprüft haben oder nicht.
Fügen Sie Kommentare in den Code ein, der für groß angelegte Modelle generiert wird. Sie können Objekte in generiertem Code identifizieren und die manuelle Eingabe von Kommentaren oder Beschreibungen vermeiden.
Um Kommentare zur Rückverfolgbarkeit zu ermöglichen, benötigen Sie die Software Embedded Coder oder HDL Coder™. Weitere Informationen finden Sie unter Trace Stateflow Elements in Generated Code (Embedded Coder) und Navigate Between Simulink Model and HDL Code by Using Traceability (HDL Coder).
Hinweis
Stateflow-Blöcke unterstützen keine Code-Generierung, wenn einer der Daten einen Alias-Typ verwendet und eine variable Größe hat. Diese Einschränkung gilt nicht für Eingaben, Ausgaben oder lokale Daten auf Diagrammebene. Weitere Informationen zur Definition von Daten mit variabler Größe finden Sie unter Declare Variable-Size Data in Stateflow Charts.
Siehe auch
Themen
- Generate Code from Atomic Subcharts
- Generate Code Using Simulink Coder (Simulink Coder)
- Generate Code Using Embedded Coder (Embedded Coder)