Интегрирование и вызов внешнего кода С из модели Simulink
Simulink/Пользовательские функции
Блок C Function интегрирует и вызывает внешний код С из Simulink® модель. Этот блок используется для определения внешнего кода и настройки интегрирования кода путем предварительной обработки или постобработки данных. В сложение можно задать настроенный код для симуляции и Генерации кода C. Можно вызвать функции, определенные в коде, условно, и можно также вызвать несколько функций в одном блоке. Используя этот блок, можно инициализировать постоянные данные блока и передать его во внешнюю функцию.
Можно также использовать C Function блок, чтобы вызвать подмножество функций C Math Library. Дополнительные сведения см. в разделе Вызова функций библиотеки C из блока C Function.
Блок 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, которые не могут быть смешаны с новым включением, рассмотрите добавление блока include и C Function в модель библиотеки и используйте ссылку на блок в основной модели. Для получения дополнительной информации см. раздел «Создание пользовательской библиотеки».
Указатели разных типов не могут быть назначены друг другу. Типы указателей должны совпадать при вызове внешних функций.
Код не может взять адрес константы.
Прямой вызов некоторых функций библиотеки C из блока C Function не поддерживается. Для просмотра списка функций библиотеки C Math Library, которые можно вызвать непосредственно, смотрите Вызов Функции библиотеки C из блока C Function Чтобы вызвать другие функции библиотеки C, создайте функцию-оболочку, которая вызывает функцию библиотеки C.