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/AM5746: About the MailBox

Part Number: AM5746
Other Parts Discussed in Thread: SYSBIOS

Tool/software: TI-RTOS

Hi.
I can't use "Ask a related question". So I write the relevant E2E.
e2e.ti.com/.../464710

There was a problem that my customers didn't receive the mail that was posted to MailBox.
When Posting Mailbox from Task1 of Priority 30 to Task2 of Priority 31 (max priority), MailboxPend of Task2 might not be released.

My customers thought that the same phenomenon as related E2E was happening.

Quesiton 1:
Is it OK to workaround Cowsill-san's workaround to avoid this problem?

Question 2:
Are there any workarounds, such as calling sysbios, other than Cowsill-san's workaround?

For example, call Hwi_disable ()-> Hwi_enable () after Mailbox Post, etc.

■Version
AM574x
CCS v8
GCC GNU v6.3.1(Linaro)
HW IDK574xEVM
SW pdk_am57xx_1_0_11
bios_6_52_00_12
XDCTools 3.50.3.33

Regards,
Rei

  • Rei,

    We do not recommend Cowsill-san's workaround.  The recommended way to fix this is the following:

    The Task doing the Mailbox_post should increase its priority to the highest task's priority before doing the Mailbox_post and then restore its priority to the original value upon returning from the Mailbox_post() call.  If it does not know the highest task's priority, you can also increase it to the max priority (Task_numPriorities - 1).

    oldPri = Task_setPri(Task_self(), Task_getPri(HighestTask));
    Mailbox_post();
    Task_setPri(Task_self(), oldPri);

    Judah