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

3 次查看(过去 30 天)
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.

回答(2 个)

Naman Bhaia
Naman Bhaia 2019-5-24
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 2019-5-24
编辑:Ritesh Rajore 2019-5-24
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.

Community Treasure Hunt

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

Start Hunting!

Translated by