From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24819 invoked by alias); 2 Apr 2008 19:47:12 -0000 Received: (qmail 24811 invoked by uid 22791); 2 Apr 2008 19:47:11 -0000 X-Spam-Check-By: sourceware.org Received: from londo.lunn.ch (HELO londo.lunn.ch) (80.238.139.98) by sourceware.org (qpsmtpd/0.31) with ESMTP; Wed, 02 Apr 2008 19:46:54 +0000 Received: from lunn by londo.lunn.ch with local (Exim 3.36 #1 (Debian)) id 1Jh8um-0002Px-00; Wed, 02 Apr 2008 21:46:32 +0200 Date: Wed, 02 Apr 2008 19:47:00 -0000 From: Andrew Lunn To: Grant Edwards Cc: eCos Disuss Message-ID: <20080402194632.GH7929@lunn.ch> Mail-Followup-To: Grant Edwards , eCos Disuss References: <200804022125.19510.neundorf@kde.org> <20080402193008.GE7929@lunn.ch> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.17+20080114 (2008-01-14) X-IsSubscribed: yes Mailing-List: contact ecos-discuss-help@ecos.sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: ecos-discuss-owner@ecos.sourceware.org Subject: Re: [ECOS] Re: On ARM7 can one of FIQ/IRQ be used for non-eCos stuff? X-SW-Source: 2008-04/txt/msg00026.txt.bz2 On Wed, Apr 02, 2008 at 07:36:21PM +0000, Grant Edwards wrote: > On 2008-04-02, Andrew Lunn wrote: > > >> Yes. I think providing an official way how to use the FIQ with > >> lowest possible overhead under eCos would be good. Some kind > >> of communication with eCos is required I think, e.g. a > >> recommended way how to generate a regular interrupt so that if > >> some condition is detected in the FIQ handler a regular ISR > >> can overtake. > > > > I've done this before, but it used hardware support. > > > > The Intel StrongARM interrupt controller had a bit you could > > set to cause an IRQ interrupt to happen. So in the FIQ you hit > > this bit and exit the FIQ. Once interrupts are re-enabled the > > IRQ goes off and you are in normal eCos interrupt context. > > How did eCos know where the interrupt came from? Did that bit > you set have it's own unique hardware-generated ID value? Yep. CYGNUM_HAL_INTERRUPT_SOFT_IRQ, So you just register an interrupt handler for this as normal. When the interrupt fires the interrupt controller say a soft IRQ has gone off when hal_IRQ_handler() asks it. Andrew -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss