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.

TMS320F280025-Q1: math calculation problems in 280025

Part Number: TMS320F280025-Q1

Hi

I am using 280025.I learn about that 28002x series have FPU. After I get ADC conversin value,I need to calculate the digital value to physical value.I write the code as following:

  If I just declare this funcition but dont use it,after I compile,relative advice will appear as following:

"../App_User/ADC_App.c", line 14 (col. 22): advice #3195-D: (Performance) EABI double precision is 64-bits as opposed to 32-bits for COFF. Consider changing doubles to floats for improved performance in FPU32-mode.

If I use this code in some place such as interrupt, after I compile,Some problems will appear as following:

Later,I referred to Fast Run Time Support Library users guide.pdf,I changed some cofigurations as following:

Shall I need to call functions from rts2800_fpu32_fast_supplement_eabi.lib or IQmath_fpu32_eabi.lib to finish multiplication and division calculation?What should I do furthermore?

Thanks!

  • Hi,

    "../App_User/ADC_App.c", line 14 (col. 22): advice #3195-D: (Performance) EABI double precision is 64-bits as opposed to 32-bits for COFF. Consider changing doubles to floats for improved performance in FPU32-mode.

    As previously explained in this thread and this one, please add suffix F to all float constants. Since F28002x does not have an FPU64, the EABI compiler will treat it as a 64 bit operation and will be slower.

    If I use this code in some place such as interrupt, after I compile,Some problems will appear as following:

    This has nothing to do with the program code itself. It is related to the size of the const section. As mentioned above, please try to add the 'F' suffix to make the compiler treat it as a 32 bit number. If that does not bring down the code size, you will have to allocate more RAM in your cmd file.

    Shall I need to call functions from rts2800_fpu32_fast_supplement_eabi.lib or IQmath_fpu32_eabi.lib to finish multiplication and division calculation?What should I do furthermore?

    If you are using floating point, please use the FASTRTS library. for division. If you can convert to IQ format, please use the IQMath library for both division and multiplication.

    -Shantanu