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


Mark Salter <msalter@redhat.com> writes:

> 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.

To underline this, FIQ is actually more expensive that IRQ because it
converts the state to look like an IRQ and then drops into the IRQ
handler. The intended way of using FIQ was always to either plug a
jump into the hardware FIQ vector, or install a VSR table entry. In
both cases these must point to an assembly routine that then handles
the interrupt and returns, without interacting with the rest of eCos.

-- 
Nick Garnett                    eCos Kernel Architect
http://www.ecoscentric.com/     The eCos and RedBoot experts


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