This is the mail archive of the ecos-devel@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]
Other format: [Raw text]

Re: Two timer in FIQ mode


On Fri, 2004-11-19 at 07:35, Andrew Lunn wrote:
> On Fri, Nov 19, 2004 at 11:43:39AM +0100, Sicheri Marco wrote:
> > I all,
> > I Have the Samsung s3c44b0x.
> > I'd like use two timer in interrupt mode.
> > So that i use the TIMER2 and the TIMER3 (use the cyg_interrupt_create()).
> > 
> > First step: run only the timer2 in fiq mode every 1ms. It works ok
> > Second step: run only the timer3 in fiq mode every 2ms. It works ok
> > Now: run timer2 in FIQ mode and the timer3 in IRQ mode. They work ok.
> > But: if i run timer2 in FIQ mode and the timer3 in FIQ mode, they don't
> > work, and the system is lock.
> 
> FIQ is not heavily used so i would not be supprised if there were a
> few bugs remaining. Probably its a reentrance problem, ie handling a
> second FIQ will still handling the first. Take a look at vectors.S and
> see if you can find such a problem.
> 

That is probably the case.

It is good to keep in mind that FIQ support in vectors.S simply
uses the same handling as a normal IRQ. There is no advantage to
using an FIQ vs IRQ. The current code was intended to workaround
poorly designed hardware which used the FIQ input for normal
interrupts. Proper FIQ support would need to do something else.

--Mark


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