Hi,
I have a problem with the message priority and have no idea how to solve it, any help will be greatly appreciated.
Here is the description of the system:
Processor: c6472
BIOS: 6.31.4.27
IPC : 1.22.3.23
XDC: 3.20.8.88
XDAIS : 6.23
CCS : 4.2.4.00033
SW structure: Three Tasks (TaskA, TaskB, TaskC) with TaskA being the highest higher priority following by TaskB then TaskC
core0: TaskA and TaskB
core1: TaskC
Each of the Task have a MessageQ associated with it (MessageQ_create() was used at the creation of the task)
All the messages sent between the Tasks are the same priority.
No Error reported during MessageQ_create
All the tasks are pending on the MessageQ_get(xxx,xxx, , MessageQ_FOREVER) with no timeout period.
PROBLEM:
- TaskC send a message to wake up TaskB
- TaskB received the message and process the logic needed to handle TaskC’s message
- While TaskB is processing the logic for TaskC’s message, TaskA send a message to TaskB
- TaskB received the message and process the logic needed to handle TaskA’s message.
- TaskB finished processing the logic needed for TaskA’s message.
- TaskB finished processing the logic needed for TaskC’s message.
The tasks are reentrant but the priorities of all the messages are the same, so shouldn’t TaskB finish servicing the logic it needed for TaskC’s message first before servicing TaskA’s message.
Thanks much,
Dominic