This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

RTOS/TMS320C6678: MessageQ High Priority Queue

Part Number: TMS320C6678

Tool/software: TI-RTOS

Hi all,

I have a question about using MessageQ message priority. There are three priority levels a message can be set to: MessageQ_NORMALPRI, MessageQ_HIGHPRI, and MessageQ_URGENTPRI.

The higher priority messages are supported by a separate queue, which must in turn be supported by a separate mode of transport.

Is it possible to declare two instances of shared memory transport for a core (i.e. one for normal priority and one for high and urgent priority) ?

If I only have one mode of transport, does the message priority have any effect?

Best Regards,

Johnny

  • Hi Johnny,

    I've forwarded this to the RTOS experts. Their feedback should be posted here.

    BR
    Tsvetolin Shulev
  • Johnny,

    You don't really need declare two instances of shared memory transport. You basically need to set the bit in "flags" field of message header to declare the message priority, then the MessageQ APIs will internally classify the message to its corresponding queue, see Internally a MessageQ object maintains two linked lists: normal and high-priority. A normal priority message is placed onto the "normal" linked list in FIFO manner. A high priority message is placed onto the "high-priority" linked list in FIFO manner. An urgent message is placed at the beginning of the high linked list.

    The API for setting the message priority:


    Regards, Garrett