La génération de code C désormais possible depuis Matlab

Le 03/03/2008 à 0:00

Embedded Matlab est une technologie de génération de code embarqué pour Matlab. Elle est basée sur Real-Time Workshop 7, l’outil de génération de code pour Simulink, qui a été adapté pour supporter les algorithmes au format “.m”. Cela permet aux développeurs de gagner du temps, mais aussi d’éviter toutes les erreurs qui pouvaient apparaître lors de la traduction manuelle d’un algorithme vers un programme embarqué. The Mathworks a développé une nouvelle technologie permettant de générer du code C directement utilisable dans les logiciels et les systèmes embarqués. Avec Embedded Matlab, sous-ensemble inclus dans Matlab et Simulink à partir des versions R2007B, les développeurs spécialisés dans la mise au point d’algorithmes peuvent désormais créer des programmes embarqués de manière automatique. Auparavant, il était impératif de transcrire manuellement les algorithmes (qui sont le plus souvent en virgule flottante) en un code performant pour l’embarqué. La génération de code C était déjà disponible sous Simulink, via l’outil Real-Time Workshop 7. Mais dès lors qu’une modification s’avérait nécessaire dans l’algorithme de base, il était ardu de remonter jusqu’à lui. Désormais, le lien entre Matlab et Simulink est beaucoup plus direct. S’il était possible d’ajouter du code Matlab dans des modèles Simulink, l’importation d’algorithmes était toutefois très difficile (il fallait les écrire directement dans les blocs Simulink), voire impossible. Les concepteurs d’algorithmes, avec Embedded Matlab, créent des bibliothèques qui peuvent facilement être importées sous Simulink, et modifiées pour chacune de leurs instances au sein d’un système. Car les spécialistes de la conception d’algorithmes ne sont pas forcément les spécialistes du code embarqué, et inversement. Ces deux étapes sont en général effectuées dans des services différents, par des personnes différentes. Avec ce nouveau sous-ensemble, toutes les équipes gagnent du temps. « En outre, ajoute Philippe Foucault, directeur général de The Mathworks France, la génération automatique évite l’important risque d’erreurs qu’implique la traduction manuelle d’algorithmes en code C. » Il est vrai que la traduction en C était jusqu’à présent le seul moyen de vérifier des algorithmes. Le sous-ensemble Embedded Matlab consiste à adapter les fonctions Matlab pour la transformation en code enfoui. 270 opérateurs à virgule flottante et 90 fonctions à virgule fixe ont été modifiés. Toutes les fonctions ont été modifiées Concrètement, cela concerne toutes les fonctions de Matlab à l’exception de celles qui ne sont pas utilisées dans le monde de l’embarqué: fonctions d’affichage (printf, par exemple), fonctions de création d’interfaces (GUI, pour Graphical User Interfaces) ou encore d’impression. Enfin, Simulink bénéficie aussi de l’adaptation de ces fonctions pour proposer la génération de code HDL, ce qui était auparavant impossible. Il suffit donc de choisir une cible matérielle parmi une liste qui, comme l’assure Philippe Foucault, regroupe déjà l’essentiel des architectures du marché, pour que des programmes pour circuits électroniques puissent être générés d’un simple clic.

Copy link
Powered by Social Snap