Simulink SFunction Interface Error: due to insufficient storage
3 views (last 30 days)
Show older comments
Very simple function block, with matrices input and constants total less than 80MB. Sample time 1, Simulation Duration 2. Code runs as a snap in Matlab. Moved into a system model failed in compilation (Xp 32-bit, 4GB) with error:
MATLAB Function Interface Error: Error calling generated SFunction, test_sfun, due to insufficient storage. This is most likely due to large static arrays in the generated code. Disabling debugging may help.
Same model compile and run perfectly on: Win7 x64 Matlab x64 8GB system
Can anyone please comment on this, the model has a keyword: simple.
Or maybe there is an SFuntion design criteria I should have read.
Thanks,
0 Comments
Answers (3)
Fred Smith
on 18 Jul 2012
Have you tried turning off debugging in the MATLAB Function block? That usually has a dramatic effect and allows many more examples to work.
Kaustubha Govind
on 16 Jul 2012
Are you using the (Embedded) MATLAB Function block to bring your MATLAB code into Simulink? The MATLAB Function block generates C-code from the MATLAB code before executing it (and runs it via a C-MEX S-function), so it is slightly different from running the code directly in MATLAB. Perhaps 80MB is too large for the program stack on 32-bit Windows. You could try converting your large data into global variables and see if that helps. Please see Using Global Data with the MATLAB Function Block for more information.
2 Comments
Kaustubha Govind
on 17 Jul 2012
The %#codegen doesn't change anything about the functioning of the block - AFAIK, it is mostly used only for M-Lint analysis to check your code for code-generation compatibility. I'm not sure what the program stack limit is - I'm guessing it changes by platform and the selected MEX compiler?
If you don't want C code to be generated, you might want to use the Interpreted MATLAB Function block instead - note that this block only allows for one input and one output.
Actually, I'm not sure if the memory issue is specific to the Embedded MATLAB Function block, or to Simulink, but the Interpreted MATLAB block is worth a try.
See Also
Categories
Find more on Model Verification in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!