How to make Embedded coder use isnan C-API than implementing custom code?

10 views (last 30 days)
My Simulink model uses NaN and some places there is check of same using matlab function isnan().
When I am genertaing C-code using embedded coder, i see generated code has custom implementation of isnan function like below
/* Test if value is not a number */
boolean_T rtIsNaN(real_T value)
{
return (boolean_T)((value!=value) ? 1U : 0U);
}
How can I avoid this and allow EC to use isnan API from math.h from my toolchain. If I use above implementation, it doesnot work as expected in some of my cores which doesnt have FPU. Replacing this and Calling isnan() from math.h works fine for me.
I did web-search but couldnt find any help on this topic.

Answers (2)

Naman Bhaia
Naman Bhaia on 24 May 2019
I believe Code Replacement Customization can be the possible solution. To implement that, you could develop a code replacement library by referring to this link.

Ritesh Rajore
Ritesh Rajore on 24 May 2019
Edited: Ritesh Rajore on 24 May 2019
I tried this but it is not reflecting. I defined replacemnet function of rtIsNaN as isnan but I see EC is generating the code as earlier.
In my model, piece of code where nan and its validation is done is in m-file. Not sure if code replacement is applicable for m-file code.

Categories

Find more on Kernel Creation from Simulink Models 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!