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.

problem with floting point (64 bits) on TMS320F28335.

Other Parts Discussed in Thread: TMS320F28335

Hello

i have a problem of working with floating point representation of 64 bits on eZdsp TMS320F28335  with CCS vertion 3.3

when i read a constant floting value into a variable of type long double(64 bits), the floating value is not reading as it is...

for example:   long double x = 0.112L;    //

in the memory "x" value is reading correct. i.e 0x3FBCAC08 3126E979  = 0.112

but in watch window i am observing "x" = 2.428889x10-9 .This value is equalent of 0x3126E979 i.e only last 32 bits of the "x" value. all the arithematic operations are working perfect of long double datatype and stored correct values in memory. but showing wrong 32bits eualent values in Watch Window.( i think no problem with the TMS320F28335, may be it is due to emulator !!!!!!).

The project build option is rts2800_fpu32.lib . Is there any problem of using this library for 64bits float value.....is it support?

when i change the Floating point support to fpu64, the project is not compiling.. is there any library file special for it like rts2800_fpu64.lib. if so, it is not in my project library files.. where can i have it?  

Thanks

Venkatarao.

 

 

  • Venkatarao,

    I'm not sure why the watch window isn't working for you.  It displays long double correctly in the version I have installed.  I suggest sending a report to support@ti.com to find out if it is a known bug in a particular version.

    The 28335 supports native 32-bit (single precision) floating point instructions.  Any long double calculations are done via software in the RTS library.    The float_support flag tells the compiler what type of instructions the CPU supports.  So float_support = none tells it to use fixed point instructions only.  fpu32 tells it that 32-bit flaot instructions are available.  The switch fpu64 would be for 64-bit floating-point instructions which C2000 does not currently have.

    If you set fpu32 then use rts2800_fpu32.lib - this enables native 32-bit floating point calculations and any long double calcuations will be done via software.

    Regards

    Lori