This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Unnecessary floating point support?

Hi,

My problem is that I have integer constants coded as compile-time constant floating equations to avoid having to use the floating point library... let me explain...

Take some code that does not use floating point operations - say:

void main(void)
{
   unsigned int i = 1000;
   for (; i; i--)
     ;
}

Under Projects / Options / C/C++ / Misc Controls: add the directive:

--fpu=none

since we don't need FPU support.

Like this, the program will compile.

Now, ask the compiler to do some compile-time floating-point calculation that results in an integer - insert at head of file:

unsigned int j = (unsigned int)(1.0*3.0);

The RealView compiler refuses to compile the line, even though we don't need FP support at run-time.

Is there a way round this?

Parents
  • Because of this limitation, the code has to be written:

    That conclusion is premature.

    The standard practice for this kind of job is to slightly reorder the equation:

    #define DAC_numerator   15
    #define DAC_denominator 255
    #define VPP_5V          (BYTE)((5 * DAC_denominator) / /DAC_numerator)
    

    I'll leave the addition of the 0.5 term as an exercise.

Reply
  • Because of this limitation, the code has to be written:

    That conclusion is premature.

    The standard practice for this kind of job is to slightly reorder the equation:

    #define DAC_numerator   15
    #define DAC_denominator 255
    #define VPP_5V          (BYTE)((5 * DAC_denominator) / /DAC_numerator)
    

    I'll leave the addition of the 0.5 term as an exercise.

Children