Сгенерированная функция точки входа C/C + +, которая содержит код выполнения для каждого шага в модели Simulink
является функцией выполнения, которая содержит выход и обновления для блоков в Simulink® модель.void
model_step(void
)
является функцией выполнения с идентификатором задачи, который содержит выход и обновления для блоков в модели Simulink.void
model_step_N(void
)
Функция точки входа шага вычисляет текущие значения блоков. Если логгирование включено, функция step обновляет переменные logging. По проекту функция step вызывается на уровне прерывания из rt_OneStep
(вызывается как таймер ISR). The rt_OneStep
функция вызывает model_step
функция для выполнения обработки в течение одного тактового периода модели. Для получения дополнительной информации смотрите rt_OneStep и факторы о планировании.
Если модель имеет конечное время остановки, функция step сигнализирует об окончании выполнения, когда текущее время равняется времени остановки. В противном случае, если одно или несколько из этих условий верны, функция step не проверяет текущее время на соответствие времени остановки, и программа запускается бесконечно:
Время остановки модели установлено на inf
.
Логгирование отключено.
Параметр Terminate function required не выбран.
Сгенерированный интерфейс вызова функции точки входа шага для модели отличается в зависимости от этих параметров:
Чтобы сгенерировать функцию точки входа шага, выберите параметр Single output/update function. Если вы очистите этот параметр, model_output
и model_update
функции точки входа генерируются вместо функции шага.
Чтобы сгенерировать одну функцию с конфигурируемыми аргументами, очистите параметр Treat each discrete rate as a separate task. Чтобы сгенерировать отдельные функции шага на основе требований к синхронизации, выберите этот параметр. Для получения дополнительной информации смотрите Обработать каждую дискретную скорость как отдельную задачу.
Значение параметров | Прототип функции |
---|---|
Off (односкоростная или многократная однозадачная модель) | void model_step(void); |
On
(многозадачная многозадачная модель) | void model_step_N (void); ( N является идентификатором задачи) |
Чтобы изменить сгенерированный интерфейс вызова, установите параметры Language и Code interface packaging. Для получения дополнительной информации см. раздел «Упаковка интерфейса кода».
Чтобы предворительно просмотреть и настроить имя и аргументы сгенерированной функции точки входа на C или C++, Embedded Coder® требуется лицензия. Чтобы просмотреть функцию точки входа шага, откройте редактор Отображения и щелкните вкладку Functions. Чтобы настроить имя функции, в Function Name столбце щелкните и отредактируйте электронную таблицу непосредственно. Чтобы настроить имя функции и аргументы, в Function Preview столбце щелкните гиперссылку функции и сконфигурируйте функцию шага из открытого диалогового окна. Чтобы настроить функцию с помощью шаблона, в Function Customization Template столбце выберите шаблон для применения к функции. Для получения дополнительной информации см. раздел «Настройка имен и аргументов для отдельных функций шага», «Интерактивная настройка интерфейса C++» и «Настройка генерации кода по умолчанию для функций».
Чтобы просмотреть сгенерированную функцию точки входа шага, откройте представление Code или Отчет о генерации кода и просмотрите исходный код для вашей модели. Для получения дополнительной информации см. раздел «Анализ интерфейса сгенерированного кода».
model_initialize
| model_reset
| model_terminate