Automatic generation of S function for a c code

I have a C code and want generate S function for it using matlab scripting..(Avoid manual steps required for s function generation)..Can any one help me for this

 Accepted Answer

You can use the Legacy Code Tool to generate a C-MEX S-function wrapper for your C-code.

6 Comments

Thanks Kaustubha for the answer...It seems to be working for me...Additionaly I have one more question: My C function does not have any input argument nor it returns anything(it is of kind void main(void))...But I need to provide some input values for the internal signals of c code and simillarly I need to take few internal variables as output variables from the s function that will be created from my c code....Could you please let me know how it can be done...
Rupesh: Not sure what you mean by "internal variables". How would you provide/access the values if you were writing the code outside of Simulink?
suppose my code is like
main() { int a,b,c; c=a+b; }
As main function does not take any input argument nor it returns anything.. In my problem I have to pass values of variable a and b from matlab environment and then take out variable c in matlab environment
How are the values stored in the MATLAB environment? Is there a reason you are not using a From Workspace block feeding parameters to the S function ? If changing the C code is not allowed, then how does the C code get its values at the moment?
I have to connect these variables(here a and b) using inports in Simulink. and will provide values through test vectors in .m file.. On the same lines output c should be connected to outport of Simulink..
Looking after for your answer
Rupesh: Walter's question was about how you might invoke the C code from another C application and supply inputs. It seems to me that you have to rewrite your C code so that the inputs a and b are passed in as function argument and c as a return argument. Once you have done that, you can use the Legacy Code Tool to generate an S-function so that the block inputs are passed in to 'a' and 'b' and 'c' is assigned back to the block output.

Sign in to comment.

More Answers (0)

Categories

Find more on Simulink Coder 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!