[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Floating point question



Hi all!

So, now I have gotten to the dreaded floating point issue. However, I think my problem is a little rare... the problem is that the FPU simply does not give correct answers. Consider the following code excerpt:

	  m0 = ramp*chi_off*ang_lim/ my_2_pi;

Given the following parameters, 
  ramp = 1,
  chi_off = 0.299,
  ang_lim = 198,
  my_2_pi = 6.28,

the statement above returns

  m0 = -2147483648 !!!

Interesting, isn't it? m0 is an int, the rest are floats. If I run the program without debugging and trace data through an RT-fifo, I get lots of results like the above example. However if I debug the program, and wait for a few seconds, sometimes different results are returned. 

Can anyone guess at possible causes for this happening? Have anyone else experienced the same behaviour?

Apart from this, my system is working fine, I have no crashes, hangups or other bad behaviour. 

My configuration is:
Pentium III 866 processor, tyan SMP motherboard, kernel 2.2.18-rtl. Base distribution is SuSE 7.0, and exchanged the stock installed debugger for gdb 5.0. I am using the stock gcc 2.95.2 19991024 that comes with SuSE.

BTW, I solved my previous problem by NOT doing rtf_flush() from a rt-thread... :-)

Yours very confusedly,
Jonas Persson

______________________________________________________________________
 Jonas Persson                    E-mail: jonas.persson@comsys.se
 Project Manager, M.Sc C.Sc&E     http://www.comsys.se/
 Comsys AB                        Phone: +46-(0)46-286 3500
 Forskningsbyn IDEON              Fax: +46-(0)46-286 3505
 S-223 70 Lund, Sweden