rtems_message_queue_receive / rtems_event_receive issues

Sebastian Huber sebastian.huber at embedded-brains.de
Tue Oct 2 06:55:10 UTC 2018

On 02/10/2018 08:48, Catalin Demergian wrote:
> Hi,
> This assert may not be directly related to my issue because I 
> reproduced it a few times (with RTEMS_DEBUG enabled in the build)
> without seeing the assert being hit. What I discovered is that after a 
> while _Scheduler_priotity_Unblock is not called for my task anymore.
> And since _Scheduler_priotity_Unblock calls _Scheduler_Update_heir, my 
> task will not be set as the heir and no context switch will be made 
> for it.
> My question is why would _Scheduler_priority_Unblock not beeing called ?

The _Scheduler_priority_Unblock() is called by _Thread_Unblock() only if 
the thread state changes from not-ready to ready.

> rtems_event_send called from my USB ISR calls _Event_Surrender and 
> that calls _Thread_Unblock
> Is there a conceptual problem calling rtems_event_send from an ISR ?

Using rtems_event_send() from an ISR is a standard use case.

> I saw there is a rtems_event_system_send function. should I call this 
> one instead ? what is the difference?

It is a different event set, one for applications and one for the system.

Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber at embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.

More information about the users mailing list