How do I create a S-Function with generated Code (Simulink Coder)?

I want to generate Code from a Model (e.g. a Subsystem), modify the Code, and create a S-Function with the modified Code. The Code-generation isn't the Problem - i think - I'm just using Simulink Coder to generate the Code. The Problem is to create a S-Function with the generated Code. It doesnt work, even if I dont modify the Code.
What I've tried:
  • Creating a .mexw64 file by using "mex" in the Console - that worked so far, but I couldnt connect the mex file with a S-Function.
  • Using legacy code Tool - the S-Function I generated with legacy_code doesnt have In/Output ports. The OutputFcnSpec of legacy code would be very much effort to write, if its a complex model.
Is there an easy way to do this?

1 Comment

What I know is that you cann't create a S-function by use the code which generated by Simulink coder. If you want to create a S-function in a simple way, you should follow Madhu Govindarajan's answer.

Sign in to comment.

Answers (2)

You can create subsystems out of algorithms that are of concern and right click on the subsystem > C/C++ code > generate S-function, this way you can create the S-function directly without having to create the code and modify it. But if that is part of your workflow then I am not sure how to go about this, maybe there is a way to parameterize stuff in S-functions.

1 Comment

Hi Madhu, What you are saying that, if we follow right click on the subsystem > C/C++ code > generate S-function. Which means we don't need to generate code for S-function correct?
Is this apply for Targetlink block in simulink model?

Sign in to comment.

Categories

Find more on Simulink Coder in Help Center and File Exchange

Asked:

on 17 Nov 2015

Commented:

on 30 Sep 2020

Community Treasure Hunt

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

Start Hunting!