We have i82527 based can-card installed in our system. We are running
self-written device ‘driver’ which attaches irq of cancard to itself
with qnx_hint_attach. Program is not real driver usi Device manager,
it’s only normal program with IO-handling priileges and hint_attach.
We have been experiencing mysterious system freeze sometimes (like
once/24 hours). We tried to put some process running on higher
priority to see if even it would be running, but whole system is
frozen. Kernel is not printing any messages to screen.
Now we have added some debugging for irq (by blinking leds with outp),
and this is impressions we get:
On beginning of irq handler we disable interrupts from can-chip to
prevent getting new irq before we get previous handled. After all the
processing in irq, last thing we do is re-enable irq from can
chip. With led-states it looks like every freeze we get is right after
enabling irq. My theory is, there has been new message on can, and
i82527 generates new irq right after enabling interrupts. And in qnx
point of view, it looks like irq line getting up before previous irq
hanler has finished.
So question is, has anybody else seen such problem before? Would it be
possible there might be such problem in qnx4? Any ideas how to avoid
problem?
We are running QNX 4.25E.
If replying with e-mail, remove x-letters in my e-mail.
–
M. Tavasti / tavastixx@iki.fi / +358-40-5078254
Poista sähköpostiosoitteesta molemmat x-kirjaimet
Remove x-letters from my e-mail address