This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: AIC on at91 port
- From: Robert Martin <rmartin_ecos at yahoo dot com>
- To: "Deli Geng \(David\)" <deli dot geng at ncl dot ac dot uk>, eCos discussion <ecos-discuss at sources dot redhat dot com>
- Date: Sun, 20 Jan 2002 22:59:35 -0800 (PST)
- Subject: Re: [ECOS] AIC on at91 port
David,
It looks to me like using the AIC would remove
roughly 20 instructions plus the entire
hal_IRQ_handler() routine (2 LDRs, an AND, and a for
loop over up to 20 interrupt sources). It would also
make the interrupt handling overhead the same for all
IRQ sources. If I can still count cycles this late at
night, time wise, this is a ballpark 2 uSecs. Not huge
but nothing to sneeze at in IRQ handling. The uniform
overhead in IRQs would be a nice benefit as well.
With the exception of the hal_IRQ_handler() routine,
it appears that all of the IRQ overhead is in the
hal/arm/arch tree instead of hal/arm/at91. It looks
like adding use of the AIC vectoring would involve a
non-trivial bit of mucking around in vectors.s and
hal_intr.h. In a one-off build where there is no
desire to merge the changes back into the main, these
changes would be reasonably straight-forward. To do
it in a way consistent with the rest of the hal, one
would need to at least
1) come up with a way for platforms to change any of
the standard ARM exception vector locations (0x04 -
0x1c);
2) turn the interrupt overhead (from IRQ to the
determination of the interrupt handler location) into
a macro or a callable function;
3) allow platforms to override the architecture based
registration of ISRs.
I assume that our friends at RedHat would have a lot
to say about whether it is done and how it should be
done.
Regards,
Rob
-----
Robert Martin
rmartin@sonoranfoothillseng.com
--- "Deli Geng (David)" <deli.geng@ncl.ac.uk> wrote:
> Hi, there,
>
> it seems that eCos at91 port didn't utilize the on
> chip AIC for interrupt
> dispatch (it is used for interrupt config and
> control). Does anyone know the
> reason? and is it possible to make AIC dispatch the
> interrupt? It looks like
> more efficiency.
>
> regards
>
> David
>
>
__________________________________________________
Do You Yahoo!?
Send FREE video emails in Yahoo! Mail!
http://promo.yahoo.com/videomail/