How to hide code in S-Function block in simulink?

8 views (last 30 days)
Using legacy tool and minGW compiler, i have compiled my c code (.c) and header file as well (.h). In result of same i get S-Function Source file (.c) and mex file.
Using mex file, i have created a S-Function block in MATLAB simulink.
Now as per my requirements, i wanted to hide the S-Function Source file (.c) which can be seen via S-Function block in MATLAB simulink.
ultimately my requirement is to, hide the code from user.
Saying all of above, i wanted to know:
  1. Am i able to hide code sing S-Function block in simulink?
  2. If Answer to first queston is yes, then how to do so?

Accepted Answer

Fangjun Jiang
Fangjun Jiang on 30 Mar 2020
You have your source code (in .c or .m or Fortran), compile them into a .mex (or .dll) file using mex() command, then you can use the S-function block in Simulink to use this function.
When you deploy it to other users, you can just copy the .mex or .dll file without including the source code. The user will be able to use the S-function but won't be able to view your source code.
  4 Comments
pramod jadhav
pramod jadhav on 6 Apr 2020
Ok.
The .lib file you are talking about is to generated in MATLAB or Code composer studio?
If it is in MALTAB then how to do so?
And if from code composer studio then, will .lib file from code composer studio will work with MATLAB?
Thanks in advance.
Fangjun Jiang
Fangjun Jiang on 6 Apr 2020
The .lib file is compiled by a C compiler, such as MS Visual C. The C language S-function is still C code. It can use the functions in the .lib file. The header file is to tell you what functions and their calling syntax.
If you generate the C code and want to use it for embedded control, make sure you provide the .lib file compiled by that embedded C compiler.

Sign in to comment.

More Answers (0)

Categories

Find more on Simulink Coder in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!