Сгенерируйте MEX-функции при помощи приложения MATLAB Coder

Рабочий процесс для генерации MEX-функций Используя приложение MATLAB Coder

ШагДействиеДетали
1

Настройте MATLAB® Проект Coder™.

Настройте проект MATLAB Coder
2

Задайте параметры конфигурации сборки. Установите Build type на MEX.

Сконфигурируйте настройки проекта
3

Разработайте проект.

Разработайте проект MATLAB Coder

Приложение MATLAB Coder не поддерживается в MATLAB Online™. Чтобы сгенерировать MEX-функции в MATLAB Online, используйте codegen команда.

Сгенерируйте MEX-функцию Используя приложение MATLAB Coder

В этом примере показано, как сгенерировать MEX-функцию из кода MATLAB с помощью приложения MATLAB Coder.

Создайте функцию точки входа

В локальной перезаписываемой папке создайте файл MATLAB, mcadd.m, это содержит:

function y = mcadd(u,v) %#codegen
y = u + v;

Создайте тестовый файл

В той же локальной перезаписываемой папке создайте файл MATLAB, mcadd_test.m, это вызывает mcadd с входными параметрами в качестве примера. Входные параметры в качестве примера являются скалярами с типом int16.

function y = mcadd_test
y = mcadd(int16(2), int16(3));

Откройте приложение MATLAB Coder

На вкладке MATLAB Toolstrip Apps, под Code Generation, кликают по значку приложения MATLAB Coder.

Приложение открывает страницу Select Source Files.

Задайте исходные файлы

  1. На странице Select Source Files введите или выберите имя функции точки входа mcadd.

    Приложение создает проект с именем по умолчанию mcadd.prj.

  2. Нажмите Next, чтобы перейти к шагу Define Input Types. Приложение анализирует функцию для кодирования готовность генерации кода и проблемы. Если приложение идентифицирует проблемы, оно открывает страницу Review Code Generation Readiness, где можно рассмотреть и устранить проблемы. В этом примере, потому что приложение не обнаруживает проблемы, оно открывает страницу Define Input Types.

Определите входные типы

Поскольку C использует статический контроль типов, во время компиляции, MATLAB Coder должен определить свойства всех переменных в файлах MATLAB. Необходимо задать свойства всех входных параметров функции точки входа. Из свойств входных параметров функции точки входа MATLAB Coder может вывести свойства всех переменных в файлах MATLAB.

Задайте тестовый файл mcadd_test.m тот MATLAB Coder использует, чтобы автоматически задать типы для u и v:

  1. Введите или выберите тестовый файл mcadd_test.m.

  2. Нажмите Autodefine Input Types.

    Тестовый файл, mcadd_test.m, вызывает функцию точки входа, mcadd, с примером вводит типы. MATLAB Coder выводит, что вводит u и v int16(1x1).

  3. Нажмите Next, чтобы перейти к шагу the Check for Run-Time Issues.

Проверяйте на проблемы во время выполнения

Шаг Check for Run-Time Issues генерирует файл MEX от ваших функций точки входа, запускает MEX-функцию и сообщает о проблемах. Этот шаг является дополнительным. Однако это - лучшая практика, чтобы выполнить этот шаг. Можно обнаружить и зафиксировать ошибки времени выполнения, которые более трудно диагностировать в сгенерированном коде C.

  1. Чтобы открыть диалоговое окно Check for Run-Time Issues, кликните по стреле Check for Issues.

    Приложение заполняет поле тестового файла с mcadd_test, тестовый файл, что вы раньше задавали входные типы.

  2. Нажмите Check for Issues.

    Приложение генерирует MEX-функцию. Это запускает тестовый файл, заменяющий вызовы mcadd с вызовами MEX-функции. Если приложение обнаруживает проблемы во время генерации MEX-функции или выполнения, это предоставляет предупреждающие сообщения и сообщения об ошибке. Кликните по этим сообщениям, чтобы перейти к проблематичному коду и устранить проблему. В этом примере приложение не обнаруживает проблемы.

  3. Нажмите Next, чтобы перейти к шагу Generate Code.

Сгенерируйте MEX-функцию

  1. Чтобы открыть диалоговое окно Generate, кликните по стреле Generate.

  2. В диалоговом окне Generate, набор Build type к MEX и Language к C. Используйте значения по умолчанию для других настроек конфигурации сборки проекта.

  3. Нажмите Generate.

    Приложение указывает на ту генерацию кода, за которой следуют. Это отображает исходные файлы MATLAB и сгенерированные выходные файлы на левой стороне страницы. На вкладке Variables это отображает информацию об исходных переменных MATLAB. На вкладке Target Build Log это отображает журнал сборки, включая предупреждения компилятора и ошибки.

    MATLAB Coder разрабатывает проект и, по умолчанию, генерирует MEX-функцию, mcadd_mex, в текущей папке. MATLAB Coder также генерирует другие вспомогательные файлы в подпапке под названием codegen/mex/mcadd. MATLAB Coder использует имя функции MATLAB как корневое имя для сгенерированных файлов. Это создает специфичное для платформы расширение для файла MEX. См. Соглашения о присвоении имен.

  4. Чтобы просмотреть отчет генерации кода, нажмите View Report.

  5. Нажмите Next, чтобы открыть страницу Finish Workflow.

Рассмотрите страницу рабочего процесса конца

Страница Finish Workflow указывает на ту генерацию кода, за которой следуют. Это предоставляет сводные данные проекта и ссылки на сгенерированный выход.

Сконфигурируйте настройки проекта

Открыть диалоговое окно настроек проекта:

  1. Чтобы открыть диалоговое окно Generate, кликните по стреле Generate.

  2. Нажмите More Settings.

Чтобы изменить настройки проекта, кликните по вкладке, которая содержит настройки, которые вы хотите изменить. Например, чтобы изменить настройки Saturate on integer overflow, кликните по вкладке Speed.

MEX-функции используют различный набор параметров конфигурации, чем библиотеки и исполняемые файлы. Когда вы изменяете выходной тип от MEX Function к Source Code Static Library, Dynamic Library, или Executable, проверьте эти настройки.

Определенные параметры конфигурации важны и для MEX и для автономной генерации кода. Если вы включаете какой-либо из этих параметров, когда выходным типом является MEX Function, и вы хотите использовать ту же установку для генерации кода C/C++ также, необходимо включить его снова для C/C++ Static Library, C/C++ Dynamic Library, и C/C++ Executable.

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

Разработайте проект MATLAB Coder

Чтобы разработать проект с помощью заданных настроек, на странице Generate Code, нажимают Generate. Когда приложение MATLAB Coder разрабатывает проект, оно отображает прогресс сборки. Когда сборка завершена, приложение предоставляет подробную информацию о сборке на вкладке Target Build Log.

Если отчет генерации кода включен, или ошибки сборки происходят, приложение генерирует отчет. Отчет предоставляет подробную информацию о новой сборке и обеспечивает ссылку на отчет.

Чтобы просмотреть отчет, щелкните по ссылке View report. Отчет обеспечивает ссылки на ваш код MATLAB и сгенерировал файлы C/C++ и информацию о типе времени компиляции для переменных в вашем коде MATLAB. Если ошибки сборки происходят, отчет перечисляет ошибки и предупреждения.

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

Похожие темы