fixedpoint library linking issue with slbuild

4 views (last 30 days)
Ruchit
Ruchit on 26 Feb 2025
Commented: Sivsankar on 7 Mar 2025
I have a model with S-function which uses ssRegisterDataTypeFxpBinaryPoint for uint64, but I am getting error when try to create an executable with slbuild for my model.
It looks like linking error, how to link fixedpoint library when I create an executable of my model with slbuild.
  2 Comments
Raj
Raj on 3 Mar 2025
Hi @Ruchit, I think it will be of great help if you can also attach the error message you are facing as well. This will make it easier for me or anyone in the community to accurately understand the issue and answer it better.
Ruchit
Ruchit on 4 Mar 2025
Hi @Raj
Thanks.
I got this error when I use slbuild,
Error: undefined reference to `ssRegisterDataTypeFxpBinaryPoint' collect2.exe: error: ld returned 1 exit status
To add more info, I am using ssRegisterDataTypeFxpBinaryPoint in S-function to take uint64 datatype signal as input. When I run the model in normal mode, it is working fine, but got above error when I try to create executable of my model.
I have also defined fixpoint header file and .c file both in S-function.

Sign in to comment.

Answers (1)

Sivsankar
Sivsankar on 6 Mar 2025
To compile a fixed-point S-function, additional steps must be used compared to standard C-MEX S-functions.
  1. In your S-function, include "fixedpoint.c" and "fixedpoint.h". For more information, see: https://www.mathworks.com/help/fixedpoint/ug/structure-of-the-s-function.html
  2. Pass an extra argument, "-lfixedpoint", to the MEX command. For example:
>> mex('sfun_user_fxp_asr.c','-lfixedpoint')
Including this extra argument should help in resolving any linker errors you may encounter.
You can leverage the following documentation to larn how to create MEX functions : https://www.mathworks.com/help/fixedpoint/ug/creating-mex-files.html
  2 Comments
Ruchit
Ruchit on 6 Mar 2025
Yes, I have followed both steps which you have mentioned. But in my case, I am getting this error while using slbuild function to create an executable for my model.
My Simulink model has S-function block inside.
Sivsankar
Sivsankar on 7 Mar 2025
You will need to provide TLC code for the fixed pont S-Function when using 'slbuild' as Andy had mentioned in the comment: 'Hence a call to ssRegisterDataTypeFxpBinaryPoint in the standalong executable code just won't work. For generation of standalone code, you'll need to provide TLC code for the fixed-point s-function' of the following MATLAB answer,

Sign in to comment.

Categories

Find more on FPGA, ASIC, and SoC Development 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!