This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Compiler/TMS320F28027: missing __euclidean_div_i32byu32 intrinsic in 18.12.4 compiler

Part Number: TMS320F28027
Other Parts Discussed in Thread: CONTROLSUITE, C2000WARE

Tool/software: TI C/C++ Compiler

Hello, all

I use __euclidean_div_i32byu32 intrinsic. But in compiler version 18.12.4 it is missing...

I need effectively calculate result and reminder.

How can I substitute this intrinsic?

Thanks.

  • The C28x compiler version 18.12.x.LTS supports the intrinsic __euclidean_div_i32byu32.  However, that support is provided only under certain conditions.  I'm not sure all of those conditions can be met in your case.  

    Please search the C28x compiler manual for the intrinsic.  You'll see that your device must support these instructions:

    • ABSI32DIV32U
    • SUBC4UI32
    • ENEGI32DIV32

    You tell the compiler those instructions are available by using the option --idiv_support=idiv0.  That option is only valid when you use the option --abi=eabi to build for the new application binary interface named EABI.  It is likely that all the other components you use, like controlSUITE or C2000Ware, only support the older COFF ABI.

    You must #include <stdlib.h>

    Thanks and regards,

    -George

  • The integer division instructions are part of the FINTDIV module which is only present on the new F28388 device.  As of today, no other device has FINTDIV, so unfortunately you won't be able to run these intrinsics on F28027,

    Regards,

    Richard

  • Ok. I have no this instructions...

    I'l try

    __rpt_subcul(unsigned long num,
    unsigned long den, unsigned long &remainder, int
    count);

    , looks like it should work in my case.

    Thanks.

    BTW - it's not a good idea to cut functionality from previous versions