Преобразуйте codegen Команда к эквивалентному проекту MATLAB Coder

Можно использовать codegen команда с -toproject опция, чтобы преобразовать a codegen команда к эквивалентному файлу проекта MATLAB® Coder™. Можно затем сгенерировать код из файла проекта при помощи другого codegen команда или приложение MATLAB Coder.

Например, чтобы преобразовать a 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 Объект (Fixed-Point Designer) 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-функции.

Смотрите также

Похожие темы