2011-06-17 15 views
5

Итак, я работаю над потоком дизайна для своего DSP, где сначала алгоритмический алгоритм моделируется в MATLAB, а затем преобразуется в C/C++ для реального DSP-оборудования с использованием кодера MATLAB. Довольно я думал.MATLAB C++ Code Generation

Итак, мой план состоял в том, чтобы написать мою собственную основную функцию C, которая получает входные данные от регистров АЦП и т. Д., А затем просто вызовет сгенерированную функцию фильтра в моей основной функции. Затем я включил filter.c и filter.h в исходные файлы для своего проекта в CodeComposerStudio TI.

Я протестировал поток дизайна с помощью простой функции MATLAB, которая просто берет два числа и умножает их вместе. Теперь результат запуска codegen на эту функцию сумасшедший. Создано около 20 файлов. Поэтому, когда я добавляю исходные файлы в мой проект CCS, мне действительно нужно добавить каждую библиотеку, да? Мне кажется, что этот код не может быть эффективным?

Я пропустил что-то, что позволило бы MATLAB просто создать простую реализацию одного заголовка одного источника? Действительно ли генерируемый код эффективен? Кто-нибудь действительно имел опыт использования MATLAB Coder для работы в реальном времени DSP?

Спасибо.


EDIT: Только файлы, я добавляю к моему CCS проекта являются .c и .h связанные файлы, которые генерируются MATLAB. Не должен ли быть довольно простой процесс связывания? Есть ли в любом случае я могу создать make-файл через MATLAB, который поможет в этом процессе?

ответ

3

Создание кода MATLAB использует их обширные, хорошо реализованные библиотеки. Что касается времени разработки, это может создать для вас большую эффективность. Тем не менее, предполагаемый прецедент использования MATLAB здесь для разработки настольных систем. Если вы связываетесь с библиотеками, предоставленными Matlab, цепочка сборки TI CCS, вероятно, не будет наилучшим образом использовать эти библиотеки, если она может даже связываться.

Я много работал с CCS, и вы будете вручную перекодировать важные части с помощью различных намекающих прагм и векторизованных функций. MATLAB не может помочь вам там, DSP - совсем другой зверь, чем обычные цели MATLAB. Похоже, что это и есть путь для чистого начала работы. Мой совет - начать с нуля с помощью CCS и использовать реализацию matlab для проверки теста.

+0

Bleh. Не то, что я надеялся услышать. Итак, вы говорите мне, что MATLAB Coder не будет хорошо работать, если бы все, что у меня было в моей функции MATLAB, было похоже на y = fir1 (x)? Также, пожалуйста, проверьте мои изменения. – NickHalden

+0

О, если вы не связываетесь с любыми бинарниками, вы находитесь в гораздо лучшей форме. Мне потребовалась неделя, чтобы интегрировать ccs в нашу цепочку сборки, и я не помню ни минуты, поэтому, к сожалению, я не могу вам помочь. Что происходит, когда вы просто включаете партию файлов cpp в свой проект CCS? – totowtwo