This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Re: how to handle missed interrupt issue?
- From: Nick Garnett <nickg at ecoscentric dot com>
- To: Dave Milter <davemilter at gmail dot com>
- Cc: ecos-discuss at sourceware dot org
- Date: 05 Feb 2009 15:12:32 +0000
- Subject: Re: [ECOS] how to handle missed interrupt issue?
- References: <2a382c6e0902050650w4f59a9a9m4f5d594596694ef9@mail.gmail.com>
Dave Milter <davemilter@gmail.com> writes:
> Hello.
>
> Some days ago I started development of ecos's driver for some device
> which compatible with ARINC 429.
> Processor is belong to ARM9 family, freq is 200Mhz.
>
> The logic is simple. Driver has circular buffer, and when it receive
> from device interrupt, which means that it ready
> to go, driver send to device next 32bit word, then it recieves next
> interrupt and send next word and so on.
> When driver sends all characters from circular buffer, it start from
> begining of buffer.
>
> Now I want implement function to change circular buffer pointer,
> but if I do such simple thing:
> cyg_drv_isr_lock()
> change pointer
> cyg_drv_isr_unlock()
>
> there is probability that I lost interrupt between cyg_drv_isr_lock()
> and cyg_drv_isr_unlock(),
> and this of cause a problem, I willl wait interrupt and it never happens.
You shouldn't lose any interrupts, the interrupt controller will
remember that the interrupt occurred and deliver it when interrupts
are unmasked. The worst that will happen is that the interrupt will be
delivered slightly late. What you propose above should work just fine.
--
Nick Garnett eCos Kernel Architect
eCosCentric Limited http://www.eCosCentric.com The eCos experts
Barnwell House, Barnwell Drive, Cambridge, UK. Tel: +44 1223 245571
Registered in England and Wales: Reg No: 4422071
Besuchen Sie uns vom 3.-5.03.09 auf der Embedded World 2009, Stand 11-300
Visit us at Embedded World 2009, NÃrnberg, Germany, 3-5 Mar, Stand 11-300
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss