Внешний код C можно вызвать из модели Simulink ® с помощью функционального блока MATLAB. Выполните следующие шаги высокого уровня:
Начните с существующего кода C, состоящего из источника (.c) и заголовок (.h) файлы.
В блоке MATLAB Function введите код MATLAB ®, вызывающий код C. Используйте coder.ceval функция. Для передачи данных по ссылке используйте coder.ref, coder.rref, или coder.wref.
Укажите исходные и заголовочные файлы C для моделирования на панели Цель моделирования (Simulation Target) диалогового окна Параметры конфигурации модели (Model Configuration Parameters). Включите файл заголовка, используя двойные предложения, например: #include "program.h". Если необходимо получить доступ к исходным и заголовочным файлам C вне рабочей папки, укажите путь на панели «Цель моделирования» в текстовом поле «Включить каталоги».
В качестве альтернативы используйте coder.cinclude и coder.updateBuildInfo для указания исходного файла и файла заголовка в коде MATLAB. Для разработки интерфейса с внешним кодом можно использовать coder.ExternalDependency класс. Сведения о том, какой рабочий процесс поддерживается, см. в разделе Импорт пользовательского кода.
Протестируйте модель Simulink и убедитесь, что она функционирует правильно.
При наличии лицензии Simulink Coder™ можно создать код для целевых объектов с помощью этого метода. Чтобы использовать один и тот же исходный и заголовочный файлы для создания кода, щелкните Использовать те же пользовательские настройки кода, что и цель моделирования, на панели «Создание кода» > «Пользовательский код». Можно также указать различные исходные и заголовочные файлы.
Для кондиционирования кода для выполнения различных команд моделирования и генерации кода можно использовать coder.target функция.
coder.ceval в функциональном блоке MATLABВ этом примере показано, как вызвать простую программу C doubleIt из функционального блока MATLAB.
Создание исходного файла doubleIt.c в текущей рабочей папке.
#include "doubleIt.h"
double doubleIt(double u)
{
return(u*2.0);
}
Создание файла заголовка doubleIt.h в текущей рабочей папке.
#ifndef MYFN #define MYFN double doubleIt(double u); #endif
Создайте новую модель Simulink. Сохранить как myModel.
В браузере библиотеки в окне «Пользовательские функции» добавьте в модель блок функции MATLAB и дважды щелкните блок, чтобы открыть редактор.
Введите код, вызывающий doubleIt программа:
function y = callingDoubleIt(u) y = 0.0; y = coder.ceval('doubleIt',u);
Подключить блок константы, имеющий значение 3.5 к входному порту функционального блока MATLAB.
Подключите блок отображения к порту вывода.

В диалоговом окне Параметры конфигурации модели (Model Configuration Parameters) откройте панель Цель моделирования (Simulation Target).
В разделе Вставка пользовательского кода C в сгенерированный выберите в списке Header file и введите #include "doubleIt.h" в текстовом поле Файл заголовка.
В разделе Дополнительная информация о построении выберите Исходные файлы из списка, введите doubleIt.c в текстовом поле «Исходные файлы» и нажмите «ОК».

Запустите моделирование. Стоимость 7 появляется в блоке «Отображение».
Эта процедура применяется только к моделированию.
Simulink генерирует код для функциональных блоков MATLAB и Stateflow ® для моделирования модели. При вызове внешнего кода C с помощью функциональных блоков MATLAB или потока состояний можно управлять определениями типов для импортированных шин и перечислений в моделировании модели.
Simulink может генерировать определения типов или предоставлять файл заголовка, содержащий определения типов. Управление этим поведением осуществляется с помощью флажка Генерировать типизированные файлы для импортированных типов шины и перечисления в диалоговом окне Параметры конфигурации модели (Model Configuration Parameters).
Чтобы включить пользовательский файл заголовка, определяющий типы перечисления и шины, выполните следующие действия.
Снимите флажок Генерировать типы для импортированных типов шины и перечисления.
Перечислите файл заголовка на панели Цель моделирования (Simulation Target) в текстовом поле Файл заголовка (Header file).
Чтобы настроить Simulink для автоматического создания определений типов:
Установите флажок Генерировать типы для импортированных типов шины и перечисления.
Не перечисляйте файл заголовка, соответствующий шинам или перечислениям.
coder.BuildConfig | coder.ceval | coder.cinclude | coder.ExternalDependency | coder.ref | coder.rref | coder.target | coder.updateBuildInfo | coder.wref