This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
RE: Synchronization
- From: Schmidt Henning Larsen <HenningLS at danfoss dot com>
- To: "'ecos-discuss at sources dot redhat dot com'" <ecos-discuss at sources dot redhat dot com>
- Date: Fri, 16 Nov 2001 14:47:36 +0100
- Subject: RE: [ECOS] Synchronization
> >>
> Schmidt> Can I call isig_sem( ID semid ) in an ISR or DSR ?
> >> See http://sources.redhat.com/ecos/docs-latest/ref/ecos-ref.13.htm
> >> l#pgfId=1080346
>
> >> You can only call the signal function of a conditional variable
> >> from the DSR. So I guess the answer is no.
>
> >> Jesper
>
> Schmidt> But how shall I understand:
> Schmidt>
> http://sources.redhat.com/ecos/docs-latest/ref/ecos-ref.a.html
> #pgfId=1033803
> Schmidt> can't I use these functions.
> Only from threads. I believe the normal approach is to create a thread
> that does whatever it is you want to do as part of the interrupt
> handling, and then use condition variables to start it from the DSR.
> I'm pretty sure it's been discussed before on this list. Look in the
> archive.
> Jesper
In the uITRON spec 3 I've found:
- Performance may be increased by making separate versions of system
calls depending on whether they are issued from task portions or task-
independent portions. In this case, the name of the system call issued
from task-independent portions must be i???_??? when the equivalent
system call issued from task portions is ???_???.
For example, if there is a special version of sig_sem, which returns
semaphore resources, has been provided for execution within an interrupt
handler. The name of this system call would then be isig_sem.
and apparently eCos has the function isig_sem, and according to the uITRON
specification I can use it in an interrupt-handler !! well can I ?.
Henning