Интеграция и вызов внешнего кода C из модели Simulink
Simulink/Пользовательские функции
Блок C Function интегрирует и вызывает внешний код C из модели Simulink ®. Этот блок используется для определения внешнего кода и настройки интеграции кода путем предварительной обработки или постобработки данных. Кроме того, можно указать пользовательский код для моделирования и генерации кода C. Функции, определенные в коде, можно вызывать условно, а также несколько функций в одном блоке. С помощью этого блока можно инициализировать постоянные данные блока и передать их внешней функции.
Блок C Function можно также использовать для вызова подмножества функций библиотеки C Math Library. Для получения дополнительной информации см. раздел Функции библиотеки вызовов C из функционального блока C.
Блок C Function поддерживает инициализацию постоянных данных и вызов внешних функций из диалогового окна блока. Блок C Function поддерживает только инициализацию и завершение постоянных данных; блок не поддерживает обновление данных во время моделирования. Для моделирования динамической системы с непрерывными состояниями используйте блок S-Function. Дополнительные сведения о S-функциях см. в разделе Что такое S-функция?.
Определите исходный код и вспомогательные файлы, которые будут вызываться блоком C Function на панели Simulation Target параметров конфигурации.
Следующие функции Simulink несовместимы с блоком C Function.
Симулинк Coverage™
Измеряется только охват выполнения.
Inspector™ кода Simulink
Verifier™ проектирования Simulink
- Испытательный жгут
Использование функционального блока C в отчете Simulink Generator™
Кроме того, следующие ограничения применяются к исходному коду, на который ссылается блок C Function.
Ключевое слово C static не поддерживается.
Чтобы кэшировать значения на всех этапах времени, определите символ как Persistent в таблице «Символы» диалогового окна блока.
Файлы не могут быть включены в сценарий.
Внешние функции должны быть указаны на панели «Цель моделирования» диалогового окна «Параметры конфигурации».
Если на панели Цель моделирования (Simulation Target) определены существующие включения, которые не могут быть смешаны с новым включением, рекомендуется добавить блок включения и блок функции C в библиотечную модель и использовать ссылку на блок в главной модели. Дополнительные сведения см. в разделе Создание пользовательской библиотеки.
Указатели разных типов не могут быть назначены друг другу. Типы указателей должны совпадать при вызове внешних функций.
Код не может принимать адрес константы.
Прямой вызов некоторых функций библиотеки C из блока C Function не поддерживается. Список функций библиотеки C Math Library, которые можно вызвать напрямую, см. в разделе Функции библиотеки Call C из функционального блока C. Чтобы вызвать другие функции библиотеки C, создайте функцию-оболочку, которая вызывает функцию библиотеки C.