codegen
Команда на эквивалентный
проект MATLAB CoderВы можете использовать codegen
команда со -toproject
опция для преобразования 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
, вы устанавливаете одно или несколько свойств, которые не включены, в значения, отличные от значений по умолчанию. См. Раздел Свойств объектов (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-функцию.