Hauptinhalt

Die Übersetzung dieser Seite ist veraltet. Klicken Sie hier, um die neueste Version auf Englisch zu sehen.

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