This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: semaphore bug??
- To: Andrew Lunn <andrew dot lunn at ascom dot ch>
- Subject: Re: [ECOS] semaphore bug??
- From: Jonathan Larmour <jlarmour at redhat dot com>
- Date: Wed, 15 Aug 2001 08:24:33 +0100
- Cc: Geoff Patch <grp at cea dot com dot au>,"'ecos-discuss at sources dot redhat dot com'" <ecos-discuss at sources dot redhat dot com>
- Organization: Red Hat UK Ltd.
- References: <01C12580.59C1CFC0.grp@cea.com.au> <20010815091455.L4703@biferten.ma.tech.ascom.ch>
Andrew Lunn wrote:
>
> On Wed, Aug 15, 2001 at 11:49:32AM +1000, Geoff Patch wrote:
> >
> > Hi Folks,
> >
> > > I don't think you can post to a semaphore from an ISR. You'll
> > > have to run a DSR and do it there. There's a table in the eCos
> > > Reference Manual (Device Driver Interface to the Kernel) that
> > > shows what functions may be called from an ISR. About the only
> > > thing you can do is ack/mask/unmask interrupts and run a DSR.
> >
> > This is correct, and I recall other postings to the list about this issue.
> > It's obviously a fairly common misconception.
>
> How about adding an assertion check to semaphores and mutex etc. If
> they are called from within an ISR throw an assertion.
Unfortunately there is no portable way to determine if you are in an ISR.
Instead you would have to set a HAL level boolean in the interrupt VSR
before calling the ISR. And if the ISR, for whatever reason, doesn't exit
by returning, it would all go very wrong.
Jifl
--
Red Hat, Rustat House, Clifton Road, Cambridge, UK. Tel: +44 (1223) 271062
Maybe this world is another planet's Hell -Aldous Huxley || Opinions==mine