Hi all,
 
I have a problem when it comes to handling interrupts in RTL 3.1...
I have created a small program that takes a PPS (Pulse Per Second)
signal from a GPS connected to the CTS pin on a serial port, and uses
this pulse to synchronize the PC clock to the GPS clock. (The routine is
interrupt driven.) This way I can get a precision of about 3-4
microseconds :-) The reason I need this, is that I need fairly precise
timestamping of some events. The program gets notified of the events
through the ACK pin on the parallel port. When a event happens, the ACK
pin is pulsed, which generates an interrupt that my program handles. All
it does is to get the time when the event happened, and write this time
to a fifo which is read by a userspace program. Now, all of this works,
but not for long... the computer hangs after a random time.. it can work
for half a minute, or it can work for hours... suddenly it hangs. For my
testing, I use the same pulse both for syncronizing and for events, that
is, the same pulse generates two interrupts. How does RTL handle things
if one interrupt is issued while another one is being handled? Is it
just queued and handled later? Or is it discarded? Or will the first
interrupt be interrupted, so that it never gets to end properly? In both
the interrupt routines, I use rtl_stop_interrupts() when the routine is
entered, and rtl_allow_interrupts() before it's done.  I tried using
_no_ and _restore_ instead, but that didn't help....

anybody got an idea?

 
Thank you very much

regards,
Trond


-- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
--
For more information on Real-Time Linux see:
http://www.rtlinux.org/

Reply via email to