My case is I have multiple devices can assert interrupts and the
destination has only one external interrupt pin. I do have an interrupt
mask register to check for the source device when an interrupt comes
in.
I expect vxWorks is able to process ISRs in a linked list fashion for
this kind of interrupt sharing scenrio. Anyone confirms this?
Thank
>Can I call intConnect() multiple times to hook multiple ISRs to the
>same interrupt vector?
I think not and suspect that the most recently called overrides all
provious calls.
>My case is I have multiple devices can assert interrupts and the
>destination has only one external interrupt pin. I do have an interrupt
>mask register to check for the source device when an interrupt comes
>in.
It seems to me that what you need is a single handler that reads the
register and services the various devices as they interrupt. This handler
should be connected only once.
Watch out for what happens when one device is being serviced and another
tries to generate an interrupt. You may need to configure for level
triggered interrupts rather than edge triggered.
>I expect vxWorks is able to process ISRs in a linked list fashion for
>this kind of interrupt sharing scenrio. Anyone confirms this?
I know of nothing such as this, unless it's specific to a particular
BSP. What is your hardware environment?
--
========================================================================
Michael Kesti | "And like, one and one don't make
| two, one and one make one."
mrkesti at comcast dot net | - The Who, Bargain
No, the last connected ISR will hold.
> I expect vxWorks is able to process ISRs in a linked list fashion for
> this kind of interrupt sharing scenrio. Anyone confirms this?
I believe, but not 100% sure, that you can just use pciIntConnect() to do
exactly this, whether they are interrupts from PCI devices or not.
Personally, I would probably do what Michael suggested and use one ISR to
handle all of the devices.
Chris
My INT is indeed level-triggered.
Thanks for your inputs!
Jamie