Yes, Andrew is absolutely right. I unfortunately got the two things mutex vs. 
event 
mixed up in the rush. Sorry for that.
Viele Grüße
Heinz 



> On 28. Sep 2021, at 17:11, Johnson, Andrew N. <a...@anl.gov> wrote:
> 
> On Sep 28, 2021, at 5:02 AM, Sebastian Huber 
> <sebastian.hu...@embedded-brains.de> wrote:
>> 
>> On 28/09/2021 11:46, Heinz Junkes wrote:
>>> Unfortunately we found out that EPICS uses the mutex handling also in the 
>>> interrupt context
>>> and this leads to core-dumps in RTEMS :-(
>> 
>> Yes, using any kind of mutexes in interrupt context is undefined behaviour. 
>> Mutexes may only be used from threads.
> 
> Heinz' reply about our osdMutex may be irrelevant. I suspect the issue is 
> what if any changes we’d need to make to our implementation of the epicsEvent 
> found here 
> https://github.com/epics-base/epics-base/blob/7.0/modules/libcom/src/osi/os/RTEMS-score/osdEvent.c
> for a modified version of this to work on an RTEMS-5 or later SMP system. It 
> creates a semaphore as follows:
> 
>> sc = rtems_semaphore_create (rtems_build_name ('B', c3, c2, c1),
>>     initialState,
>>     RTEMS_FIFO | RTEMS_SIMPLE_BINARY_SEMAPHORE |
>>         RTEMS_NO_INHERIT_PRIORITY | RTEMS_NO_PRIORITY_CEILING | RTEMS_LOCAL,
>>     0,
>>     &sid);
> 
> We will want to use the same code on both SMP and UP systems and from earlier 
> posts it sounds like they would need different flags. Does RTEMS define a 
> macro that tells us which we’re compiling for, or will we have to add our own?
> 
>> Which RTEMS semaphore classes do you use in EPICS and in particular which 
>> classes do you use in interrupt context?
> 
> An epicsEvent must be able to be triggered from interrupt context, and in the 
> above implementation epicsEventTrigger() calls rtems_semaphore_release(). 
> That’s the only routine we need AFAIK.
> 
> - Andrew
> 
> -- 
> Complexity comes for free, simplicity you have to work for.
> 

_______________________________________________
users mailing list
users@rtems.org
http://lists.rtems.org/mailman/listinfo/users

Reply via email to