codegen Команда к эквивалентному
проекту MATLAB CoderМожно использовать codegen команда с -toproject опция, чтобы преобразовать codegen команда к эквивалентному файлу проекта MATLAB® Coder™. Можно затем сгенерировать код из файла проекта при помощи другого codegen команда или приложение MATLAB Coder.
Например, чтобы преобразовать codegen команда с входными параметрами input_arguments к файлу проекта myProject.prjзапущенный:
codegen input_arguments -toproject myProject.prj
Входные параметры к codegen включение:
Имена функций точки входа
Введите определения типа, заданные при помощи -args опция
Опции генерации кода, включая параметры заданы в объектах настройки
Имена пользовательских исходных файлов, чтобы включать в сгенерированный код
Можно также использовать -toproject опция, чтобы преобразовать неполный codegen команда к файлу проекта. Например, чтобы создать файл проекта myProjectTemplate.prj это содержит только параметры генерации кода, сохраненные в объекте cfg настройкизапущенный:
codegen -config cfg -toproject myProjectTemplate.prj
myProjectTemplate.prj не содержит технические требования функций точки входа или вводить типы. Так, вы не можете сгенерировать код из этого файла проекта. Можно открыть myProjectTemplate.prj в приложении MATLAB Coder и использовании это как шаблон, чтобы создать полные файлы проекта, которые можно использовать, чтобы сгенерировать код.Выполнение codegen команда с -toproject опция не генерирует код. Это создает только файл проекта.
codegen Команда к файлу проектаЗадайте функцию MATLAB, myadd, это возвращает сумму двух значений.
function y = myadd(u,v) %#codegen y = u + v; end
Создайте coder.CodeConfig объект для генерации статической библиотеки. Установите TargetLang к 'C++'.
cfg = coder.config('lib'); cfg.TargetLang = 'C++';
В командной строке MATLAB создайте и запустите codegen команда. Задайте myadd как функция точки входа. Задайте входные параметры к myadd как матрицы переменного размера типа double чьи размерности неограниченны. Задайте cfg как объект настройки кода. Включайте -toproject опция, чтобы преобразовать codegen команда к эквивалентному файлу проекта MATLAB Coder с именем myadd_project.prj.
codegen -config cfg myadd -args {coder.typeof(1,[Inf,Inf]),coder.typeof(1,[Inf,Inf])} -toproject myadd_project.prj
Project file 'myadd_project.prj' was successfully created.
Open ProjectГенератор кода создает файл проекта myadd_project.prj в текущей рабочей папке. Выполнение codegen с -toproject опция не генерирует код. Это создает только файл проекта.
Сгенерируйте код от myadd_project.prj при помощи другого codegen команда.
codegen myadd_project.prjГенератор кода производит C++ статическая библиотечная функция myadd в папка, где work\codegen\lib\myadd ваша текущая рабочая директория.work
codegen Команда к файлу проекта шаблонаСоздайте coder.CodeConfig объект для генерации статической библиотеки. Установите TargetLang к 'C++'.
cfg = coder.config('lib'); cfg.TargetLang = 'C++';
В командной строке MATLAB создайте и запустите codegen команда. Задайте cfg как объект настройки кода. Включайте -toproject опция, чтобы преобразовать codegen команда к эквивалентному файлу проекта MATLAB Coder с именем myProjectTemplate.prj.
codegen -config cfg -toproject myProjectTemplate.prj
Project file 'myProjectTemplate.prj' was successfully created.
Open ProjectМожно теперь открыть myProjectTemplate.prj в приложении MATLAB Coder и использовании это как шаблон, чтобы создать полные файлы проекта, которые можно использовать, чтобы сгенерировать код.
Когда вы используете codegen команда с -toproject опция, эти ограничения применяются:
Экспорт CodeTemplate параметр coder.EmbeddedCodeConfig объект к файлу проекта не поддержан.
Предположим что ваш codegen команда для генерации MEX-функции использует coder.Constant задавать постоянный вход, который является fi объект obj.
Определенный fi свойства объектов включены другими свойствами. Когда вы создаете fi объект, эти свойства установлены в свои значения по умолчанию, если вы явным образом не изменяете их. В obj, вы устанавливаете одно или несколько свойств, которые не включены к значениям не по умолчанию. См. fi Свойства объектов (Fixed-Point Designer).
Вы преобразуете этот codegen команда к файлу проекта при помощи -toproject опция. Вы создаете файл проекта и генерируете MEX-функцию. Когда вы передаете obj как постоянный входной параметр к сгенерированной MEX-функции и запуску MEX, MEX может выдать ошибку.
Чтобы устранить эту проблему, необходимо установить свойства obj это не включено к их значениям по умолчанию прежде, чем передать его MEX-функции. Для этого задайте новый fi объект obj_new:
a = mat2str(obj); obj_new = eval(a);
Передайте obj_new как постоянный вход к сгенерированной MEX-функции.