Сгенерируйте 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

На вкладке Apps MATLAB Toolstrip, в разделе 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, чтобы перейти к 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. При возникновении ошибок сборки в отчете перечисляются ошибки и предупреждения.

См. также

Похожие темы