C code to S function tutorials

4 views (last 30 days)
Paul
Paul on 20 Jan 2014
Commented: Kaustubha Govind on 25 Mar 2014
Hi does anyone have any good tutorial examples that i can use to get to grips with using the legacy code toolbox ?
I have some C code and I want to learn effective ways to to turn it into S code to put in my simulink model. This model will eventually be working on a real time machine.
I have been told that the legacy code tool box is my best candidate. Does anyone have any informative tutorials that might help ?

Accepted Answer

Suneesh
Suneesh on 20 Jan 2014
Edited: Suneesh on 20 Jan 2014
There are several examples in Simulink documentation for the legacy code tool. Look under "Custom Blocks with S-functions, System Objects and Legacy Code Tool" in:
Do consider the S-Functions mentioned in Bruno's answer as well and choose the solution which seems more suitable for you.

More Answers (2)

Bruno Pop-Stefanov
Bruno Pop-Stefanov on 20 Jan 2014
Edited: Bruno Pop-Stefanov on 20 Jan 2014
I am not familiar with legacy_tool but there is another way to create an S-Function from C code.
You can call a binary from a Simulink model using MEX files. A MEX file is a binary compiled from C, C++ or Fortran code that is properly formatted to work with MATLAB code. Here is a short introduction:
and here is good starting point in the MATLAB documentation:

Paul
Paul on 22 Jan 2014
Thanks guys
I used the example to create an s function but then attempted to use the model wizard to compile the simulink model into my target machine but it comes up wth the error :
S-function 'ex_sfun_doubleit' in 'untitled/ex_sfun_doubleit' specifies option SS_OPTION_SFUNCTION_INLINED_FOR_RTW however a 'ex_sfun_doubleit.tlc' file could not be located in the current working directory, the S-function directory 'C:\Users\HIL\Documents\MATLAB\LEGACY_TEST', or the directory 'C:\Users\HIL\Documents\MATLAB\LEGACY_TEST\tlc_c'
can some one explain ?
  1 Comment
Kaustubha Govind
Kaustubha Govind on 25 Mar 2014
As the documentation states, you also need to run legacy_code('sfcn_tlc_generate', def) in order to generate the ex_sfun_doubleit.tlc file.

Sign in to comment.

Categories

Find more on Manual Performance Optimization 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!