[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