Задайте, может ли один из входных портов S-функции быть перезаписан одним из ее выходных портов
void ssSetInputPortOverWritable(SimStruct *S, int_T port, int_T isOverwritable)
S
SimStruct, представляющий Блок s-function.
port
Индекс входного порта, overwritability которого устанавливается.
isOverwritable
Значение, задающее, ли port
сверхперезаписываемо.
Используйте в mdlInitializeSizes
(после того, как ssSetNumInputPorts
) задавать ли port
сверхперезаписываемо одним из выходных портов S-функции. Механизм Simulink® использует эту установку в качестве одного критерия в определении, может ли один из выходных портов этой S-функции совместно использовать память с port
. Если isOverwritable=1
и другим критериям удовлетворяют, механизм выделяет общий блок памяти для входного порта и одного из выходных портов S-функции, таким образом уменьшая требования к памяти симуляции. Значением по умолчанию является isOverwritable=0
, что означает тот port
не может совместно использовать память ни с одним из выходных портов S-функции.
Если вы устанавливаете входной порт быть сверхперезаписываемым, необходимо также указать, что входной порт и по крайней мере один из выходных портов S-функции являются допускающими повторное использование. Используйте ssSetInputPortOptimOpts
и ssSetOutputPortOptimOpts
сделать это.
C, C++
Смотрите S-функцию sfun_multirate.c
используемый в sfcndemo_sfun_multirate
и S-функция sdotproduct.c
используемый в sfcndemo_sdotproduct
.
ssSetNumInputPorts
, ssSetInputPortOptimOpts
, ssSetOutputPortOptimOpts
, ssGetInputPortBufferDstPort