This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How to wait on multiple objects in CMSIS-RTOS?

Hello.

I have a thread which must be waked-up from multiple sources - 3 different message box for example. How I can organize this in CMSIS-RTOS? Currently in revision 4.00 of CMSIS, there is a osWait() function. But in RTX 4.74 (which comes with latest CMSIS), this function is not implemented.

So what I can do like a workaround of this problem? Wake-up regularly via timer and check all message boxes? Working but not efficient.Currently the only multi-object wake-up source implemented in CMSIS-RTOS seems to be the signals. But it's not really cool to use message box and signals in parallel for waking up. Did I'm missing something?

Parents
  • Hi Reinhard,

    I have been looking at the link which you suggested. I don't think that there is a way for a thread to wait for a multiple signals at the same time, and there is no way to distinguish which signal has just been received if the code waits like this:

    osSignalWait(0,osWaitForever);//wait for ANY signal to this thread
    

    Perhaps you can help by showing us some code on how to do this?

    Thank you very much

    Wan

Reply
  • Hi Reinhard,

    I have been looking at the link which you suggested. I don't think that there is a way for a thread to wait for a multiple signals at the same time, and there is no way to distinguish which signal has just been received if the code waits like this:

    osSignalWait(0,osWaitForever);//wait for ANY signal to this thread
    

    Perhaps you can help by showing us some code on how to do this?

    Thank you very much

    Wan

Children
No data