Embedded Coder

 

Embedded Coder

Générer du code C et C++ optimisé pour les systèmes embarqués

En savoir plus:

Configuration pour la génération de code

Pour configurer les paramètres de la génération de code pour Embedded Coder®, vous pouvez utiliser l'application MATLAB Coder pour MATLAB® ou le guide de démarrage rapide d'Embedded Coder pour Simulink. Vous pouvez également configurer chaque paramètre directement avec des commandes et scripts MATLAB.

À partir de l'application MATLAB Coder, vous pouvez :

  • Générer du code pour vos fichiers et fonctions MATLAB
  • Sélectionner votre processeur et votre sortie de génération de code
  • Choisir des optimisations d'Embedded Coder

À partir du guide de démarrage rapide d'Embedded Coder pour Simulink, vous pouvez :

  • Générer du code pour vos modèles et sous-systèmes Simulink
  • Sélectionner votre processeur et votre sortie de génération de code
  • Choisir des optimisations d'Embedded Coder
texte de remplacement nécessaire ici

Utiliser le guide de démarrage rapide d'Embedded Coder pour accélérer la génération du code de production à partir de Simulink.

Sélectionner les cibles

Embedded Coder utilise 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 qualité production.

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

  • Fichier MEX
  • Librairie statique C/C++
  • Exécutable C/C++

Pour Simulink, vous spécifiez l'une des configurations prêtes à l'emploi :

Cible embarquée temps réel : génère du code ANSI/ISO C, C++ et C++ encapsulé, virgule flottante ou virgule fixe permettant une exécution temps réel efficace sur potentiellement tout processeur de production

Cible AUTOSAR : génère du code C et des interfaces run-time qui supportent le développement de composants logiciels AUTOSAR (nécessite AUTOSAR Blockset)

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

MathWorks et des tiers offrent par ailleurs des produits complémentaires MATLAB qui étendent les capacités d'Embedded Coder pour supporter du hardware spécifique, comme ARM®, Intel®, NXP™, STMicroelectronics® et Texas Instruments™.

texte de remplacement nécessaire ici

Utiliser des support packages hardware pour déployer rapidement le code généré sur les dispositifs embarqués.

Travailler avec 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é afin de faciliter l'intégration logicielle.

Pour le code MATLAB, Embedded Coder supporte toutes les définitions de données de MATLAB Coder, y compris les objets virgule fixe et les classes de stockage prédéfinies.

Pour les modèles Simulink, Embedded Coder supporte les fonctionnalités de spécification et les dictionnaires de données suivants :

Embedded Coder Dictionary : vous permet d'afficher et de personnaliser les définitions de code, notamment les interfaces de fonction, les classes de stockage et les sections de mémoire

Objet de données Simulink : offre des classes de stockage prédéfinies, par exemple constant, volatile, exported global, imported global, directive define, structure, champ de bits (structure de bits, notamment) et accès avec les méthodes get et set

Objet de données de packaging de module : offre des attributs préconfigurés pour les objets avancés de donné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 lookup tables

Type de données utilisateur : permet de créer des types abstraits pour les données complexes permettant un contrôle précis de l'apparence des données du modèle dans le code généré, un interfaçage avec les données existantes, ainsi que l'augmentation ou le remplacement de types Simulink prédéfinis

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 avec la norme ASAP2. Vous pouvez modifier les fonctionnalités intégrées pour produire d'autres mécanismes d'échange de données.

texte de remplacement nécessaire ici

Utiliser Embedded Coder Dictionary pour définir et contrôler l'apparence des modèles et des données dans le code généré.

Optimiser et packager le code

Embedded Coder vous permet de contrôler les interfaces des fonctions, de préserver des expressions et d'appliquer des optimisations à de nombreux blocs 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é jusqu'aux blocs et aux signaux de votre modèle.

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

  • Générer un code spécifique à un processeur pour les opérateurs et fonctions mathématiques
  • Réutiliser le code pour l'exportation dans des environnements existants ou externes
  • Éliminer le code superflu pour l'initialisation, la terminaison, le logging et la gestion des erreurs
  • Supprimer le code virgule flottante des applications utilisant uniquement des types entiers

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

  • Générer des variants de code avec des macros de compilation préprocesseur
  • 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
texte de remplacement nécessaire ici

Génération de code SIMD à partir d'un modèle Simulink.

Commentaires, suivi et documentation du code

Embedded Coder offre plusieurs options pour examiner le code généré depuis 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 de code, les interfaces de fonction et les métriques de code statiques
  • 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 en commentaires du code généré, notamment le texte de documentation des fonctions

Avec Simulink, Embedded Coder permet également d'insérer des exigences de haut niveau sous forme de commentaires dans le code généré avec des liens vers la source des exigences (nécessite Requirements Toolbox™). Le rapport de code pour la génération de code Simulink comprend également une description de l'interface du 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 les sous-systèmes, blocs, code et fonctions MATLAB, transitions et états Stateflow®.

texte de remplacement nécessaire ici

Rapport de génération de code Simulink mettant en évidence la traçabilité entre algorithme et implémentation.

Exécuter et vérifier le 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 avec le même environnement d'exécution que celui fourni par MATLAB Coder.

Avec Simulink, Embedded Coder étend de manière significative l'environnement d'exécution temps réel fourni par Simulink Coder. Par défaut, le code peut être exécuté avec ou sans système d'exploitation temps réel (RTOS), en mode monotâche, multitâches, multicœurs ou asynchrone. Vous pouvez également vérifier les résultats de l'exécution du code avec Embedded Coder pour les tests SIL (Software-in-the-loop) et PIL (Processor-in-the-loop). Simulink Test™ et Simulink Coverage contribuent à automatiser l'exécution des tests, la comparaison des résultats et l'analyse de la couverture. L'analyse du profilage de l'exécution du code est également supportée.

Générer une fonction main()

Embedded Coder génère une fonction main() extensible en fonction de l'information fournie pour le déploiement du code dans votre environnement 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.

Exécuter du code multi-échantillonné, multitâches et multicœurs

Embedded Coder génère du code mono- ou multi-échantillonné en fonction des périodes d'échantillonnage spécifiées dans le modèle. Pour les modèles multi-échantillonnés et multitâches, il a recours à une stratégie appelée groupage de fréquences d’échantillonnage qui génère des fonctions distinctes pour la tâche dans la fréquence de base et pour chaque tâche dans les sous-fréquence du modèle. Vous pouvez également utiliser la modélisation Simulink Concurrent Execution pour produire du code multithreadé pour le traitement multicœurs.

Effectuer des 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 embarquée pour des tests PIL avec des blocs S-function ou des modes de simulation Simulink. Simulink Test™ aide à automatiser l'exécution des tests et la comparaison des résultats des tests et de la simulation à partir du modèle original. Vous pouvez exécuter une analyse de couverture structurelle du code afin de mesurer l'exhaustivité des tests grâce à Simulink Coverage ou à l'intégration avec des outils tiers. L'analyse de profilage du code fournit le temps d'exécution sur le processeur hôte ou cible.

texte de remplacement nécessaire ici

Exécuter des tests software-in-the-loop (SIL) et processor-in-the-loop (PIL) sur le code généré par Embedded Coder.