Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 31 Dec 1996 15:34:44 +1030 (CST)
From:      Michael Smith <msmith@atrad.adelaide.edu.au>
To:        hmmm@alaska.net (hmmm)
Cc:        bde@zeta.org.au, hackers@FreeBSD.ORG
Subject:   Re: Ints
Message-ID:  <199612310504.PAA09948@genesis.atrad.adelaide.edu.au>
In-Reply-To: <Pine.GSO.3.93.961230184937.6958A-100000@calvino.alaska.net> from hmmm at "Dec 30, 96 07:06:52 pm"

next in thread | previous in thread | raw e-mail | index | archive | help
hmmm stands accused of saying:
> > >for example - i have both COM ports tied to the same ISR - is there any
> > >danger in reading RxBuf1 (lower priority) while SERVICING an RxBuf2 INT?

I think there is confusion here between ISR and IRQ.  You may have one
ISR handling both ports, but you must have two IRQs.

> > There is extreme danger of this not working at all, for other reasons -
> > ISA hardware doesn't support sharing interrupts (at the same time).
> 
> this i have heard - but cannot comprehend!  the UART will activate its IRQ
> - negotiate with the PIC - and when the PIC acks everything it
> INTerrupts the CPU to picks up a vector in RAM to jump to ...
> who cares if the address is the same ISR or not ???
> i don't understand! :)

The inputs to the PIC are edge-triggered.  If one interrupt occurs
while another is still asserted, the second is lost, and will prevent
any other interrupts from being detected.  Most ISA devices also drive
their interrupt outputs inactive as well as active, so two devices in
different states will fight each other, and apart from the possibility
of damage to one or the other, the resultant IRQ signal isn't terribly
wonderful from an electrical point of view.

You can, to a degree, work around this, but every time you move your
feet with the PIC and ISA hardware you open more obscure race
conditions.  The safest and most reliable base to work from is "never
share interrupts".

-- 
]] Mike Smith, Software Engineer        msmith@gsoft.com.au             [[
]] Genesis Software                     genesis@gsoft.com.au            [[
]] High-speed data acquisition and      (GSM mobile)     0411-222-496   [[
]] realtime instrument control.         (ph)          +61-8-8267-3493   [[
]] Unix hardware collector.             "Where are your PEZ?" The Tick  [[



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199612310504.PAA09948>