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-функции.