I'm working with a ColdFire MCF5484 running Linux 2.6.10.

Using CodeWarrior for ColdFire ISA, Linux Platform Ed. v 2.0

The standard math library calls (sin(), cos(), log10(), etc) have been giving me bogus answers. A simple example: log10(100.0) returns "-inf" (and not 2).

Another observation:

#include

#include

static double getPI2() { return M_PI/2.0); }

static double getV() {return 1.0; }

int main(int argc, char** argv)

{

double v1 = sin(M_PI_2);

double v2 = 1.0 * sin(getPI2());

double v3 = getV() * sin(getPI2());

printf("%f, %f, %f\n", v1, v2, v3);

return 0;

}

Produces:

"1.000000, 1.000000, -0.000000"

What is it about calling a function that would corrupt a simple calculation like this?

I see the same problem on both the Logic PD ColdFire dev kit (M5485EVB) and our hardware. Do I need to explicitly enable floating point support somewhere? Is there a patch for CodeWarrior?

I thought the MCF548x had all sorts of great hardware floating point support, including multiply/accumulate instructions. Very confused and frustrated!

Using CodeWarrior for ColdFire ISA, Linux Platform Ed. v 2.0

The standard math library calls (sin(), cos(), log10(), etc) have been giving me bogus answers. A simple example: log10(100.0) returns "-inf" (and not 2).

Another observation:

#include

#include

static double getPI2() { return M_PI/2.0); }

static double getV() {return 1.0; }

int main(int argc, char** argv)

{

double v1 = sin(M_PI_2);

double v2 = 1.0 * sin(getPI2());

double v3 = getV() * sin(getPI2());

printf("%f, %f, %f\n", v1, v2, v3);

return 0;

}

Produces:

"1.000000, 1.000000, -0.000000"

What is it about calling a function that would corrupt a simple calculation like this?

I see the same problem on both the Logic PD ColdFire dev kit (M5485EVB) and our hardware. Do I need to explicitly enable floating point support somewhere? Is there a patch for CodeWarrior?

I thought the MCF548x had all sorts of great hardware floating point support, including multiply/accumulate instructions. Very confused and frustrated!

Does CodeWarrior use gcc3.4? The 3.4 seems to target the m68k which does not include the advanced math support.

I am currently using gcc4.1 supplied by http://www.codesourcery.com It works great with the math support, and my applications runs noticably faster.