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.

TMS320F28384S: Hardware floating point support of CM4

Part Number: TMS320F28384S

Hi champs,

To enable the hardware floating point of CM4, we should set --float_support option to FPv4SPD16, is this correct?

Is there anything else we should take care to enable CM4 hardware floating point?

Regards,

Luke

  • Hi champs,

    When I set --float_support option to FPv4SPD16, the software will jump to faultISR() when I declare local float variables in functions, is it reasonable?

    I am wondering whether or not the CM4 in F2838x supports hardware floating point, please advise your comments if any.

    Thanks and regards,

    Luke

  • Luke,

    the CM4 does not support FPU64. It is only available in CPU1 and CPU2.

    -Shantanu

  • Shanty,

    CM4 does not support FPU64, but does it support FPU32(hardware floating point)?

    My customer points out CM4 takes too long time to do the float variables calculation, how can we optimize the code and speed up CM4 float operation?

    Another question is that according to my customer's test result, the CM4 takes almost same time when doing float calculation in flash and RAM memories, is this reasonable?

    -Luke

  • Luke,

    CM does not support any FPU instructions. For max performance, I would recommend you to do the floating point operations on either CPU1 or 2.

    If there is a hard requirement for floating point operations on CM, you can consider doing the operations using the IQmath library without fpu32 enabled. You will have the overhead of converting to and back from IQ format.  

    -Shantanu

  • Shantanu,

    Do you mean CM4 in F2838x doesn't support hardware floating point? Does this mean it is a Cortex-M4, not Cortex-M4F?

    You mentioned IQmath library, where can I find the CM4 IQmath library please?

    My customer told me that CM4 takes same period of time to do float type calculation, no matter he executed the code from flash or RAM memory, is this reasonable?

    -Luke

  • Luke,

    The Connectivity Manager (CM) is based on the Cortex M4 architecture and not M4F.  This is why the time taken for hardware floating point operations take a long time on the CM. For floating point, it would be better to run the operations on either C28x or CLA cores.

    The IQMath library is not available for CM. My apologies. The operations will have to be run in fixed point format and not floating point. 

    Due to the128-bit-wide prefetch reads and a pipeline buffer, flash performance for sequential code is equal to execution from RAM. If you factor in discontinuities, most applications will run with an efficiency of approximately 80% relative to code executing from RAM. I am assuming that the code he tested is a sequential set of instructions so I would expect to see what you reported. 

    -Shantanu