MATLAB C ++ Генерация кода - PullRequest
5 голосов
/ 17 июня 2011

Итак, я работаю над процессом разработки моего DSP, где алгоритм фильтрации сначала моделируется в MATLAB, а затем преобразуется в C / C ++ для реального оборудования DSP с использованием MATLAB-кодера.Я подумал, что это довольно просто.

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

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

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

Спасибо.


РЕДАКТИРОВАТЬ: Единственные файлы, которые я добавляю в свой проект CCS, это .c и связанные с ним файлы .h, сгенерированные MATLAB.Разве это не должно быть довольно простым процессом связывания?Можно ли как-нибудь сгенерировать make-файл через MATLAB, который бы помог с этим процессом?

1 Ответ

3 голосов
/ 17 июня 2011

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

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

...