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

5 vues (au cours des 30 derniers jours)
Sumit
Sumit le 8 Août 2024
Réponse apportée : Sahas le 20 Août 2024
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

Réponses (2)

arushi
arushi le 12 Août 2024
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 le 20 Août 2024
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!

Catégories

En savoir plus sur Code Generation for Custom Blocks dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by