Задайте возможность многократного использования памяти, выделенной входному порту S-функции
void ssSetInputPortOptimOpts(SimStruct *S, int_T port, uint_T val)
S
SimStruct, представляющий Блок s-function.
port
Индекс входного порта S
.
val
Возможность многократного использования port
. Допустимые значения
SS_NOT_REUSABLE_AND_GLOBAL
SS_REUSABLE_AND_LOCAL
SS_REUSABLE_AND_GLOBAL
SS_NOT_REUSABLE_AND_LOCAL
Используйте этот макрос, чтобы задать возможность многократного использования и осциллограф памяти, выделенной порту S-входного-параметра-функции. Возможность многократного использования указывает, может ли память, сопоставленная с входным портом, быть перезаписана, или нет. Необходимо указать, что входной порт является допускающим повторное использование, если вы используете макрос ssSetInputPortOverWritable
, чтобы указать, что память входного порта может быть перезаписана одним из выходных портов.
Механизм Simulink® игнорирует установку memory scope, вместо этого обрабатывая все порты S-функции как глобальную переменную во время симуляции.
Продукт Simulink Coder™ использует установку memory scope, которую вы задали при генерации кода из модели. Продукт Simulink Coder пытается объявить локальные переменные для любых входных параметров с локальным осциллографом. Если ваша S-функция использует входные параметры способом, который устраняет использовать локальный осциллограф, сгенерированный код использует глобальные переменные для входных параметров. Смотрите S-функции для Многоскоростных Многозадачных Сред (Simulink Coder) и S-функции, Которые Задают Порт Scope и Возможность многократного использования (Simulink Coder) для получения дополнительной информации.
C, C++
Смотрите S-функцию sfun_multirate.c
, используемый в sfcndemo_sfun_multirate
и S-функции sdotproduct.c
, используемый в sfcndemo_sdotproduct
.