我正在Simulink / Matlab中编写一个C S函数,它填充了一个大小为500 kB的输出缓冲区,供以后的应用程序使用。我在mdlInitializeSizes
:
ssSetOutputPortWidth(S, 0, 500000);
ssSetOutputPortDataType(S, 0, SS_UINT8);
稍后,在mdlOutputs
中,我写入缓冲区:
uint8_T *payload = (uint8_T*) ssGetOutputPortSignal(S,0);
for (uint32_T i = 0; i < 500000; ++i)
{
payload[i] = ...;
}
我的问题是:
ssSetInputPortRequiredContiguous
进行输入,但我没有找到输出选项...... 我问这个是因为当我尝试在大于~128k的位置写入时,代码崩溃了。这是我通过大量试验的粗略估计,因为此代码在嵌入式系统上运行,该系统并未真正提供错误跟踪。
提前致谢!