How to create a S-function for targetlink generated code .

5 次查看(过去 30 天)
I tried legacy tool for generating S-function which I was able to do .
eg. when I have a function with input parameters and return type well defined there is no issue .
When the function looks like this==>int sum (int a, int b) inside sum.c.
But in Targetlink generated code the main function is a void function.
eg. void sum (void), where i am struggling to create S-Function.
Can you please let me know any workaround for the same.
Regards
Sumit

回答(2 个)

arushi
arushi 2024-8-12
Hi Sumit,
You may try creating an S-Function by managing the inputs and outputs through global variables or by wrapping the void function to fit the S-Function interface.Workaround Steps
  1. Wrap the void Function: Create a wrapper function that takes inputs and returns outputs, and inside this wrapper, call the original void function. The wrapper function will handle the interaction with the S-Function.
  2. Define Global Variables: Use global variables to pass inputs to the void function and retrieve outputs from it.
  3. Create the S-Function: Use the legacy code tool to create the S-Function for the wrapper function.
Hope this helps.

Sahas
Sahas 2024-8-20
Hi @Sumit,
As per my understanding of the question, you would like a way to generate “S-function” using “legacy tool” for a function whose “return” and “argument” parameters are of “void” type.
I was able to create a small example for this, please follow the steps below to create the “S-function” with required specifications:
  • Create two code files named "sum.c" and "sum.h" that contain a void function and the headers, respectively.
  • Generate the S-function using “legacy code tool”.
  • A Simulink model will open with the required “void” type block.
To know more about using the “legacy code tool”, it’s integration with C/C++ code and a few examples, refer to the following documentation links:
I hope this is beneficial!

类别

Help CenterFile Exchange 中查找有关 Code Generation for Custom Blocks 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by