This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: about the FIQ interrupt vector


On Sun, 2001-11-11 at 04:55, Shaojie Wu wrote:
> Hi Richard,
> 
> I am using the IFQ to check an interrupt signal froma hardware: if CPU
> received the interrupt, the access to the memory enbedded on that hardware
> must be stopped. I check the HAL for AT91 and could not find the vector for
> FIQ but after I searched the discussion board, it seems eCos could handle
> FIQ as an IRQ . SO my question to Ecos is : which interrupt I could use to
> create
> the ISR and DSR? Thanks in advance
> 

Sorry, but there is no [one, single] answer to this question.

Interrupt numbers (the ones you've quoted) correspond to interrupt 
sources on your platform.  In most cases, the actual numbers are 
dictated by the hardware platform design.  For example, the eCos 
interrupt number for the timer interrupt might be 3 on one ARM platform 
but 17 on another.  Also, in general, whether a device asserts IRQ or 
FIQ depends on the hardware.  Once you know the mapping, all you need
to tell eCos is the number.

In order to determine the "number" (IRQ vs FIQ does not matter here), 
you'll have to look at the hardware platform specifics.  If this is a 
platform that we've ported (one of the standard platforms supported by
Red Hat), the numbers will be listed a file, typically 
  <cyg/hal/hal_platform_ints.h>
although that can vary.  If it's a port from somewhere else, you'll
have to find the information elsewhere (in the documentation, e.g.),
but the number should be in the .h file.

One word of caution: although eCos _can_ handle FIQ based interrupts
just like any other interrupt source, it often does not make sense to
do so.  FIQ interrupts are designed for absolute fastest response (hence
'FIQ' == 'Fast Interrupt reQuest').  Using the standard eCos ISR/DSR
scheme would probably defeat the point of using FIQ in the first place.

> -----Original Message-----
> From: Richard Wicks [mailto:richwicks@home.com]
> Sent: Saturday, November 10, 2001 11:25 AM
> To: Shaojie Wu; ecos-discuss@sources.redhat.com
> Subject: Re: [ECOS] about the FIQ interrupt vector
> 
> 
> I worked on an 80200 which is an ARM core from Intel - at least with that
> chip, vectors were only software vectors - it's entirely possible (although
> not too likely) that the vector you want to use wasn't included as part of
> the HAL.
> 
> Which vector do you want to use?  Or more specifically - what do you want to
> connect an interrupt to?  Serial port?  Ethernet port?  What?  This is also
> highly dependent on the board you are working with as well.  What
> development board are you working on?
> 
> The FIQ is shared with many peripherals as well.  On the Intel XScale, there
> were at least 30 seperate interrupt sources for it.  When you get into the
> HAL layer, you have to check to see who interrupted you and go from there.
> 
> -Rich
> 
> ----- Original Message -----
> From: "Shaojie Wu" <swu@zmicro.com>
> To: <ecos-discuss@sources.redhat.com>
> Sent: Saturday, November 10, 2001 10:34 AM
> Subject: [ECOS] about the FIQ interrupt vector
> 
> 
> > HI,
> >
> > I have not used any kinds of eCos interrupt handler
> > before,this question maybe too easy for u . :)
> >
> > Now I am working on a board with ARM chip and I want
> > to use the eCos to handle the FIQ. In order to create
> > a ISR and DSR, I need to use function
> > cyg_interrupt_create(), but I do not know which vector
> > I should use, I checked the header file
> > hal_platform_ints and could not find the corresponding
> > vector for FIQ
> >
> >
> > #define CYGNUM_HAL_INTERRUPT_USART0            2
> > #define CYGNUM_HAL_INTERRUPT_USART1            3
> > #define CYGNUM_HAL_INTERRUPT_TIMER0            4
> > #define CYGNUM_HAL_INTERRUPT_TIMER1            5
> > #define CYGNUM_HAL_INTERRUPT_TIMER2            6
> > #define CYGNUM_HAL_INTERRUPT_WATCHDOG          7
> > #define CYGNUM_HAL_INTERRUPT_PIO               8
> > #define CYGNUM_HAL_INTERRUPT_EXT0              16
> > #define CYGNUM_HAL_INTERRUPT_EXT1              17
> > #define CYGNUM_HAL_INTERRUPT_EXT2              18
> >
> > #define CYGNUM_HAL_ISR_MIN                     2
> > #define CYGNUM_HAL_ISR_MAX                     18
> >
> >
> > I know eCos supports the FIQ on ARM as just another
> > IRQ line, but which vector I should use? thanks a lot.
> >
> >



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]