Интегрируйте и вызовите внешний код С из модели Simulink
Simulink / Пользовательские Функции
Блок C Function интегрирует и вызывает внешний код С из модели Simulink®. Используйте этот блок, чтобы задать внешний код и настроить интегрирование вашего кода путем предварительной обработки или постобработки данных. Кроме того, можно задать настроенный код для симуляции и генерации кода C. Можно вызвать функции, определяемые в коде условно, и можно также вызвать несколько функций в одном блоке. Используя этот блок, можно инициализировать персистентные данные блока и передать его внешней функции.
Можно также использовать блок C Function, чтобы вызвать подмножество Математических Библиотечных функций C. Смотрите Вызов C Библиотечные функции От Функционального блока C для получения дополнительной информации.
Поддержки блока C Function, инициализирующие персистентные данные и вызов внешних функций от диалогового окна блока. Блок C Function поддерживает только инициализацию и завершение персистентных данных; блок не поддерживает обновление данных в процессе моделирования. Чтобы смоделировать динамическую систему с непрерывными состояниями, используйте блок S-Function. Чтобы узнать больше о S-функциях, смотрите то, Что S-функция?.
Задайте файлы исходного кода и вспомогательные файлы, которые будут вызваны блоком C Function в панели Simulation Target параметров конфигурации.
Следующие функции Simulink не совместимы с блоком C Function.
Simulink Coverage™
Только покрытие выполнения измеряется.
Simulink Code Inspector™
Simulink Design Verifier™
– Тестовая обвязка
Использование блока C Function в Simulink Report Generator™
Кроме того, нижеследующие ограничения применяются к исходному коду, на который ссылается блок C Function.
Ключевое слово C static
не поддерживается.
К значениям кэша через временные шаги задайте символ как Persistent
в таблице Symbols диалогового окна блока.
Файлы не могут быть включены в скрипт.
Внешние функции должны быть заданы в панели Simulation Target диалогового окна Параметров конфигурации.
Если вы имеете существующий, включает заданный в панель Simulation Target, которая не может быть смешана с новым, включают, рассматривают добавление включать и Функционального блока C в модели библиотеки и используют ссылку на блок в основной модели. Для получения дополнительной информации смотрите, Создают Пользовательскую Библиотеку.
Указатели различных типов не могут быть присвоены друг другу. Типы указателей должны соответствовать, когда вы вызываете внешние функции.
Код не может взять адрес константы.
Непосредственно вызов некоторых библиотечных функций C от блока C Function не поддерживается. Смотрите <ссылку здесь>, чтобы видеть список Математических Библиотечных функций C, которые можно непосредственно вызвать. Чтобы вызвать другие библиотечные функции C, создайте функцию обертки, которая вызывает библиотечную функцию C.