TLC File Level-2 MATLAB S-function

4 views (last 30 days)
Simon Assfalg
Simon Assfalg on 8 Feb 2016
Answered: Kanishk on 11 Feb 2025 at 8:39
I got a Problem with writing a TLC-File of a Level-2 MATLAB S-function.
I wrote the .m File for the S-function and started the Simulink Model with the Run Button. So far all works well. But now I want to transfer the Model to my Beaglebone Black, so I have to write a TLC File. I looked at the timestwo.tlc example to get Basics in writing an TLC File. In this example is in the TLC File and in the .m File for the S-function the input multiplied by two and transferred to the output. Now my question is if there is a way to get the Values direct from the Simulink Block without implementing the functionality a second time in the TLC File?
Such as:
output_tlc = output_simulink_block
I hope you can understand my Question :-)
Thanks for your Help

Answers (1)

Kanishk
Kanishk on 11 Feb 2025 at 8:39
If you are looking to directly utilize the output from an S-Function block within a TLC (Target Language Compiler) file, you can streamline this process by writing your algorithm in a C file. This approach involves creating a wrapper S-Function that calls your algorithm, thereby minimizing the overhead typically associated with S-Functions.
At the top of your TLC file, specify the implementation of your algorithm using the "%implements" directive.
%implements "my_alg" "C"
This line tells the TLC file to use the C implementation of your algorithm named "my_alg".
You can then call your algorithm directly within the "Outputs" function of the TLC file. Here’s an example of how to set this up:
%function Outputs(block, system) Output
%assign outPtr = LibBlockOutputSignalAddr(0, "", "", 0)
%assign inPtr = LibBlockInputSignalAddr(0, "", "",0)
%assign numEls = LibBlockOutputSignalWidth(0)
my_alg(%<inPtr>,%<outPtr>,%<numEls>);
%endfunction
You can learn more about writing wrapped inline S-Function using TLC from the documentation linked below.

Community Treasure Hunt

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

Start Hunting!