>You mean you want to handle a division by zero without ending the
>program, and without even switching to secondary mode? Then in this
>case, I am afraid you are on your own.

mmm... it's better if i explain the scenario to make sense.

I am developing a driver for a CNC using xenomai.
Now this cnc run on dos/win (and linux) and the real-time is based on nmi (with
a pci card generate the nmi @ 0.125 us - 2ms attached to the peripherals and 
servodrives).
Now we want to switch to linux only changing the pci cart with an eth card and 
rtnet to
communicate.

I have already done the ring 0 driver on linux (on windows is very similar) in 
a the *orrible* way (I know!), 
reprogramming the IDT and using cli and sti and using using xenomai only for 
small task
but we want to use rtnet so I have to better integrate into the xenomai context 
and
the only way to do it proper is to shift cnc to user rt domain.
(NOTE: it's a long story but cnc, written in asm x86 (500k) need to take the 
first 16 MB and this
is done with dirty tricks on gdt on ring 0, absolutely incompatible with 
linux/xenomai but
in ring 3 with some mapping this problems disappears of course)

The cnc need to take different decisions on fpu exceptions:
1) the intel defaults actions on masked fpu exceptions aren't right for cnc
2) an exception sometimes can occur but this must not stop cnc!
    (the cnc register the problem continue if it can be resumed)
So custom exceptions handling is *really* needed.

However I think a robust hard real time application may need to remain in rt 
even if an
fpu exception is raised and a custom exception handling is not so strange.

    Gabriele


      Unisciti alla community di Io fotografo e video, il nuovo corso di 
fotografia di Gazzetta dello sport:
http://www.flickr.com/groups/iofotografoevideo
_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to