2011-06-17 6 views
5

Je travaille donc sur le flux de conception pour mon DSP où l'algorithme de filtrage est d'abord modélisé dans MATLAB, puis converti en C/C++ pour le matériel DSP réel en utilisant le codeur MATLAB. Assez basique je pensais. Donc, mon plan était d'écrire ma propre fonction principale C qui reçoit des entrées des registres ADC, etc., puis j'appelle simplement la fonction de filtre générée dans ma fonction principale. J'inclurais ensuite le filter.c et le filter.h dans les fichiers sources de mon projet dans CodeComposerStudio de TI.Génération de code MATLAB C++

J'ai testé le flux de conception avec une simple fonction MATLAB qui prend simplement deux nombres et les multiplie ensemble. Maintenant, le résultat de l'exécution de codegen sur cette fonction est fou. Il y a environ 20 fichiers créés. Donc, quand j'ajoute des fichiers source à mon projet CCS, je dois ajouter toutes les bibliothèques? Il me semble que ce code ne peut pas être efficace? Ai-je besoin de quelque chose qui permettrait à MATLAB de générer une simple implémentation d'un en-tête? Le code généré est-il réellement efficace? Quelqu'un a-t-il réellement eu l'expérience de l'utilisation de MATLAB Coder pour des trucs DSP en temps réel?

Merci.


EDIT: Les seuls fichiers que je ajoute à mon projet de CSC sont les fichiers .c et .h associés qui a généré Matlab. Est-ce que ce ne devrait pas être un processus de liaison assez simple? Y at-il de toute façon que je puisse générer un makefile à travers MATLAB qui aiderait avec ce processus?

Répondre

3

La génération de code MATLAB utilise leurs bibliothèques étendues et bien implémentées. En termes de temps de développement, cela peut créer beaucoup d'efficacité pour vous. Cependant, le cas d'utilisation prévu de MATLAB est ici pour le développement de bureau. Si vous liez des bibliothèques fournies par matlab, la chaîne de compilation de TI CCS ne fera probablement pas le meilleur usage de ces bibliothèques, si elle peut même lier. J'ai beaucoup travaillé avec CCS, et vous recoderez manuellement les parties importantes avec les différentes pragmas de guillemets et les fonctions vectorisées. MATLAB ne peut pas vous aider, DSP est une bête très différente des cibles normales de MATLAB. Cela semble également être un obstacle à un démarrage correct d'un cadre. Mon conseil serait de repartir de zéro avec CCS, et d'utiliser l'implémentation matlab pour la validation du test.

+0

Bleh. Pas ce que j'espérais entendre Alors vous me dites que MATLAB Coder ne fonctionnerait même pas bien si tout ce que j'avais dans ma fonction MATLAB était comme y = fir1 (x)? Aussi, s'il vous plaît vérifier ma modification. – NickHalden

+0

Oh si vous n'êtes pas lié à des binaires, vous êtes en bien meilleure forme. Il m'a fallu une semaine pour intégrer ccs dans notre chaîne de construction et je ne me souviens pas d'une minute, alors je ne peux pas vous aider malheureusement. Que se passe-t-il lorsque vous incluez simplement le lot de fichiers cpp dans votre projet CCS? – totowtwo