Embedded Coder

Principales fonctionnalités

  • Options d'optimisation et de configuration de code pour l'extension de MATLAB Coder et de Simulink Coder
  • Classe de stockage, type et définition d'alias à l'aide des capacités de dictionnaire de données Simulink®
  • Optimisation du code spécifique des processeurs
  • Exécution de code multicadence, multitâche et multicœur avec ou sans RTOS
  • Vérification de code, notamment tests SIL et PIL, commentaires personnalisés et rapports de code avec traçabilité entre les modèles, le code et les exigences
  • Intégration de Texas Instruments Code Composer Studio, Analog Devices VisualDSP++® et autres environnements de développement tiers embarqués
  • Prise en charge de normes, notamment ASAP2, AUTOSAR, DO-178, IEC 61508, ISO 26262 et MISRA C® dans Simulink
A fixed-point model with generated code and its simulation mode set for SIL execution.
Modèle en virgule fixe avec code généré et son mode de simulation réglé pour une exécution SIL. Embedded Coder permet de générer, documenter et tester rapidement le code pour les systèmes de production embarqués.

Configuration et utilisation des cibles

Pour configurer les paramètres de génération de code pour Embedded Coder, vous utilisez l'interface utilisateur de projet MATLAB Coder ou Simulink Model Explorer. Vous pouvez également configurer chaque paramètre directement à l'aide des commandes et scripts MATLAB.

A partir de l'interface utilisateur de projet MATLAB Coder, vous pouvez :

  • Générer du code pour vos fichiers et fonctions MATLAB
  • Choisir d'utiliser les fonctionnalités Embedded Coder
  • Configurer les paramètres de projet pour la génération de code
  • Créer, charger et réutiliser les projets multiples

A partir de Simulink Model Explorer, vous pouvez :

  • Générer du code pour vos modèles et sous-systèmes Simulink
  • Sélectionner une cible Embedded Coder
  • Configurer la cible pour la génération de code
  • Créer, charger et réutiliser les projets multiples

Sélection des cibles

Embedded Coder a recours à des objets de configuration et des fichiers cibles système pour traduire votre code MATLAB et vos modèles Simulink en code source et en exécutables de production.

Pour un objet de configuration MATLAB, vous spécifiez une des cibles de sortie suivantes :

  • MEX-file
  • bibliothèque statique C/C++
  • exécutable C/C++

Pour un fichier cible système Simulink, vous spécifiez l'environnement en temps réel sur lequel votre code généré va être exécuté. Embedded Coder comprend des fichiers cibles pour plusieurs applications prêtes à l'emploi et prend également en charge des cibles personnalisées et tierces. Les cibles intégrées comprennent :

Cible embarquée en temps réel: génère un code ANSI/ISO C, C++ et C++ encapsulé avec données en virgule flottante et en virgule fixe pour permettre une exécution en temps réel efficace sur pratiquement tout processeur de production

Cible AUTOSAR : génère du code C et des interfaces d'exécution qui prennent en charge le développement de composants logiciels AUTOSAR

Cible de bibliothèque partagée : génère une version bibliothèque partagée de votre code pour une exécution sur plate-forme hôte, sous forme de fichier DLL (.dll) Windows® ou de fichier d'objet partagé (.so) UNIX®

Cible IDE Link : génère du code en vue de la compilation et du déploiement à l'aide d'un environnement de développement intégré (IDE) de tiers pris en charge, notamment Code Composer Studio de Texas Instruments

Définition de caractéristiques matérielles embarquées

Pour la génération de code MATLAB ou Simulink, vous sélectionnez le processeur de déploiement à partir d'une liste prédéfinie ou vous utilisez des paramètres de cible génériques. Vous pouvez également étendre la liste prédéfinie pour votre environnement personnalisé.

Simulink Model Explorer, which provides access to a predefined list or generic settings for specifying the microprocessor for code deployment.
Simulink Model Explorer, qui permet d'accéder à une liste prédéfinie ou à des paramètres génériques afin de spécifier le microprocesseur sur lequel le code va être déployé. Embedded Coder génère du code pour tout microprocesseur ou DSP, en particulier 8 bits, 16 bits et 32 bits.

Définition et contrôle des données personnalisées

Embedded Coder vous permet de définir et de contrôler l'apparence des données du modèle dans le code généré. Pour faciliter l'intégration logicielle, vous pouvez spécifier la classe, la taille et la complexité des données MATLAB avec l'interface utilisateur de projet MATLAB Coder pour les fonctions de points d'entrée et les données globales. 

Pour un code MATLAB, Embedded Coder prend en charge toutes les définitions de données MATLAB Coder, y compris les objets en virgule fixe.

Pour les modèles Simulink, Embedded Coder prend en charge les capacités suivantes de spécification de données et de dictionnaire de données pour la génération de code :

Objet de données Simulink : fournit des classes de stockage prédéfinies, par exemple constant, volatile, exported global, imported global, directive define, structure, bit field (bit-packed structure, notamment) et accès avec fonctions get et set

Objet de données d'empaquetage de module : fournit des attributs préconfigurés pour les objets de données avancées généralement employés dans une production en série, comme les segments de mémoire permettant de calibrer ou d'ajuster les tables d’interpolation

Type de données utilisateur : permet de créer des types abstraits pour les données complexes afin que vous soyez en mesure de contrôler précisément l'apparence des données du modèle dans le code généré, d'interfacer avec toutes les données existantes ainsi que d'augmenter ou de remplacer les types Simulink intégrés

Les outils suivants permettent de concevoir et de gérer des données de projet dans Simulink :

Concepteur de classe de stockage personnalisée : permet de créer graphiquement des déclarations et des définitions personnalisées pour importer des structures de données dans le code généré, exporter des données, préserver la mémoire ou générer automatiquement des données conformes aux normes d'échange, ASAM ou ASAP2 notamment

Simulink Model Explorer : affiche toutes les données utilisées par les modèles Simulink et les graphes d’états Stateflow® et fournit des affichages personnalisables pour vous permettre d'adapter l'information dans un format de dictionnaire de données

Embedded Coder vous donne accès aux fichiers d'échange de données ASAP2 dans Simulink, ce qui vous permet d'exporter les données des modèles comportant des définitions de données complexes à l'aide de la norme ASAP2. Vous pouvez modifier les fonctionnalités intégrées pour produire d'autres mécanismes d'échange de données.

A custom storage class created using the Customer Storage Class Designer.
Classe de stockage personnalisée créée à l'aide du concepteur de classe de stockage personnalisée, qui vous permet de concevoir, d'afficher et de valider des types de données complexes à l'aide d'une interface graphique intuitive.

Optimisation et intégration du code

Embedded Coder vous permet de contrôler les limites de fonctions, de conserver les expressions et d'appliquer des optimisations à des blocs multiples pour réduire davantage la taille du code. Les données sont échangées avec le code généré par le biais de variables globales ou d'arguments de fonction. Vous pouvez remonter du code généré aux blocs et aux signaux dans votre modèle.

Les options Embedded Coder pour la génération de code à partir du code MATLAB et des modèles Simulink vous permettent de :

  • Générer un code spécifique des processeurs pour les opérateurs et fonctions mathématiques
  • Réutiliser le code pour exportation dans des environnements existants ou externes
  • Eliminer le code superflu pour l'initialisation, la terminaison, la journalisation et le traitement des erreurs
  • Supprimer le code en virgule flottante des applications de type entier uniquement

Des options d'optimisation et de configuration Embedded Coder supplémentaires sont proposée pour les modèles Simulink, vous permettant de :

  • Générer des variantes de code à l'aide de macros pour une compilation préprocesseur à partir de modèles
  • Stocker les données booléennes et les états Stateflow dans des bitsets
  • Contrôler le format de chaque fichier généré
  • Déterminer les critères de définition et de référencement des données globales
  • Spécifier le contenu et le positionnement des commentaires
MATLAB example of target-specific math extensions and reusable function optimizations.
Simulink example of target-specific math extensions and reusable function optimizations.
Exemple MATLAB (à gauche) et exemple Simulink (à droite) d'optimisations de fonctions réutilisables et d'extensions mathématiques spécifiques à une cible. Embedded Coder améliore l'efficacité du code par l'optimisation du code portable et spécifique à une cible.

Commentaire, suivi et documentation du code

Embedded Coder offre plusieurs fonctionnalités pour étudier le code généré pour vos fichiers et fonctions MATLAB ou vos modèles et sous-systèmes Simulink. Avec ces fonctionnalités, vous pouvez :

  • Générer un rapport de code décrivant les modules et les paramètres de configuration de modèle
  • Contrôler les formats des identificateurs pour les fonctions, types de données et données globales générées
  • Inclure du code MATLAB sous forme de commentaires dans le code généré, notamment le texte d'aide des fonctions

Avec Simulink, Embedded Coder permet également d'insérer des spécifications de haut niveau sous forme de commentaires de code dotés de liens vers la source des spécifications (nécessite Simulink Verification and Validation). Le rapport de code pour la génération de code Simulink comprend également une description de l'interface de code, un rapport de traçabilité et l'affichage du code et des fichiers source générés. Des liens bidirectionnels existent entre le modèle et le code généré, ce qui facilite la navigation entre chaque ligne de code et son élément de modèle Simulink correspondant, par exemple sous-systèmes, blocs, code et fonctions MATLAB, transitions et états Stateflow. Vous pouvez cliquer sur un lien pour mettre en évidence la ligne de code ou l'élément de modèle correspondant, ce qui facilite la revue et le débogage du code.

Simulink code generation report highlighting bidirectional traceability between algorithm and implementation.
Rapport de génération de code Simulink mettant en évidence la traçabilité entre algorithme et mise en œuvre.

Exécution et vérification du code

Embedded Coder vous permet d'incorporer du code généré dans votre environnement d'exécution de code.

Avec MATLAB, le code généré à partir de Embedded Coder s'exécute à l'aide du même atelier d'exécution que celui fourni par MATLAB Coder.

Avec Simulink, Embedded Coder étend nettement l'atelier d'exécution en temps réel fourni par Simulink Coder. Par défaut, le code peut être exécuté avec ou sans système d'exploitation en temps réel (RTOS), en mode monotâche, multitâche ou asynchrone. Vous pouvez également vérifier les résultats de l'exécution du code par l'intermédiaire de tests SIL (Software-in-the-loop) et PIL (Processor-in-the-loop).

Génération d'un programme principal

Embedded Coder génère un programme principal extensible en fonction de l'information fournie pour le déploiement du code dans votre environnement en temps réel. Cette fonctionnalité vous permet de générer et de créer un exécutable personnalisé complet à partir de votre modèle.

Groupage de cadences

Embedded Coder génère un code monocadence ou multicadence en fonction des périodes d'échantillonnage périodique spécifiées dans le modèle. Pour les modèles multicadence et multitâche, il a recours à une stratégie appelée groupage de cadences qui génère des fonctions distinctes pour la tâche de taux de base et pour chaque tâche de sous-taux dans le modèle.

Utilisation de liens et de cibles

Le déploiement, l'intégration, l'optimisation et l'exécution automatisées du code généré sont disponibles pour les microprocesseurs, les RTOS et les IDE tiers pris en charge, en particulier Wind River Systems® VxWorks®.

Exécution de tests SIL et PIL

Embedded Coder automatise l'exécution du code généré dans Simulink pour les tests SIL ou sur la cible intégrée pour des tests PIL à l'aide de blocs S-fonction ou de modes de simulation Simulink. Les API de vérification de la génération de code permettent d'automatiser l'exécution des tests et la comparaison des résultats de test aux résultats de simulation issus du modèle original. L'intégration à des outils tiers permet d'analyser la couverture du code structurel afin de mesurer l'exhaustivité des tests. 

Essayer Embedded Coder

Obtenir une version d'évaluation

Génération de code optimisé pour ARM Cortex-A, -R, -M avec MATLAB et Simulink

Visionner le webinar