Contenu principal

Générer du code C ou C++ à partir de blocs Stateflow

Pour générer du code C ou C++ depuis des modèles Simulink® contenant un diagramme Stateflow®, vous devez utiliser SimulinkCoder™. En plus de SimulinkCoder, vous pouvez utiliser Embedded Coder® pour que votre code soit plus lisible, compact et rapide à exécuter.

Générer du code à l’aide de SimulinkCoder

SimulinkCoder vous permet de générer du code C et C++ à partir de modèles contenant des diagrammes Stateflow. Vous pouvez ensuite utiliser le code généré pour des applications temps réel et temps non réel, notamment :

  • Accélération des simulations

  • Prototypage rapide

  • Tests Hardware-in-the-Loop (HIL)

L’utilisation de SimulinkCoder vous permet également d’accéder aux modes Accelerator et Rapid Accelerator. Les modes Accelerator fonctionnent en générant du code cible qui est ensuite utilisé pour l’exécution. Pour plus d’informations sur ces modes, consultez How Acceleration Modes Work (Simulink).

Les tests HIL vous permettent de tester votre design de contrôleurs et de déterminer si votre modèle de système physique est valide.

Pour plus d’informations, veuillez consulter Generate Code Using Simulink Coder (Simulink Coder).

Générer du code à l’aide de Embedded Coder

En plus de Embedded Coder, vous pouvez générer du code C et C++ qui est plus compact, plus facile à lire et plus rapide à exécuter. En outre, Embedded Coder augmente les capacités de SimulinkCoder en vous permettant de contrôler les fonctions, les fichiers et les données générés. De plus, Embedded Coder permet une intégration facile avec le code existant, les types de données et les paramètres de calibration. Embedded Coder supporte les normes logicielles AUTOSAR, MISRA C et ASAP 2.

Embedded Coder offre également des support packages avec des optimisations avancées et des drivers de périphériques pour du hardware spécifique.

Pour plus d’informations, veuillez consulter Generate Code Using Embedded Coder (Embedded Coder).

Optimiser le code généré pour Stateflow

Pour des conseils de design sur l’optimisation de code généré à partir d’objets Stateflow, consultez Design Techniques to Optimize Stateflow Objects for Code Generation (Embedded Coder).

Générez du code pour prototypage rapide et déploiement en production

Objectif

Documentation SimulinkCoder

Documentation Embedded Coder

Générer du code source C/C++

Source Code Generation (Simulink Coder)

Source Code Generation (Embedded Coder)

Générer du code source C/C++ et créer un exécutable

Generated Code Compilation (Simulink Coder)

Generated Code Compilation (Embedded Coder)

Intégrer du code externe

External Code Import (Simulink Coder)

External Code Import (Embedded Coder)

Inclure du code externe uniquement pour des diagrammes de bibliothèque dans une bibliothèque portable et autonome pour utilisation dans plusieurs modèles

Integrate External Code with Library Charts (Simulink Coder)

Integrate External Code with Library Charts (Embedded Coder)

Optimiser le code généré

Code Efficiency (Simulink Coder)

Code Efficiency (Embedded Coder)

Traçabilité des objets Stateflow dans le code généré

Les commentaires de traçabilité permettent de :

  • Valider le code généré. Vous pouvez identifier quel objet Stateflow correspond à une ligne de code et suivre le code de différents objets que vous avez examiné ou non.

  • Inclure des commentaires dans du code généré pour des modèles à grande échelle. Vous pouvez identifier des objets dans du code généré et éviter de saisir manuellement des commentaires ou des descriptions.

Pour activer les commentaires de traçabilité, vous devez disposer de Embedded Coder ou du software HDL Coder™. Pour plus d’informations, veuillez consulter Trace Stateflow Elements in Generated Code (Embedded Coder) et Navigate Between Simulink Model and HDL Code by Using Traceability (HDL Coder).

Remarque

Les blocs Stateflow ne supportent pas la génération de code si l’une des données utilise un type d’alias et est de taille variable. Cette limitation ne s’applique pas aux entrées et sorties au niveau du diagramme ni aux données locales. Pour plus d’informations sur la définition de données de taille variable, consultez Declare Variable-Size Data in Stateflow Charts.

Voir aussi

Rubriques