float point error

one my old programme runs in DOS(compile with BC3.1),the hardware is PC/104+doc,it can run OK in cold reboot mode,but sometimes when it runs in hot reboot mode, the error message “float point error” is shown and the programme exits,please tell me the reason.

Most probably a cosmic particle hit the board disrupting the FPU.

Are you seriously asking a DOS question on OpenQNX?

I’d say something is wrong.

Here are some guesses.

  1. The BIOS or OS loader does not correctly initialize the FPU during warm boot
  2. The program references memory that is initialized one way during cold boot (all FFs) and another way during warm boot
  3. The FPU does not properly respond to a reset (hw problem)
  4. Flakey memory
  5. Or, like Mario said, alpha particles.

thank you

by the way Is it possible to check and find the reason?

Yes it’s possible. It’s always possible.

To eliminate possibility number 5 has described by kwschumm, you can move your setup in an deep underground cavern. However if it’s cause by neutrino particle you are in deep trouble as these go through the earth unaffected. I think you could also isolated your setup by putting it through a chamber made of lead with walls 3 feet thick.

It certainly is possible, so if it’s important you probably should get started :slight_smile:

This is the sort of thing you need to work out for yourself.

It will be easier if you have a second identical system for comparison.

it sound not so easy.

the result is:
float point error …(some chaos code)
abnomal terminal programme

I have found the reason,the dos will be wrong when you use 0xffffffff as the union of the float value.