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.

Mailbox issue (received data is not the same with the data sent)

Hi,

I would like to get guidance about what are in the 4 mailbox areas.

In the link.map file, I observed

........................................ 

000f3fd8   _MBX_ul_frame
000f3fe8   _MBX_ul_frame$data
000f4008   _MBX_ul_frame$free
000f4044   _MBX_dsp2ppc

...................................

000f4310   _MBX_ul_frame$queElems
000f4478   test$stack

......................................

So I can figure out that there are 4 areas for the mailbox (MBX_ul_frame):

MBX_ul_frame: length 0x10,

MBX_ul_frame$data: length 0x20,

MBX_ul_frame$free: length 0x3C,

MBX_ul_frame$queElems: length 0x168

Can anyone guide me what are in the 4 areas? In other words, if I have the data from the 4 areas, how can I parse them?

Actually, I am debugging a problem of mailbox. The received data (MBX_pend) is not the same with the data sent (MBX_post). My understanding for mailbox mechanism is that when running MBX_post(), the data will be copied from the sending local memory to a global area. And when running MBX_pend(), the data will be copied to the receiving local memory from the global area. It seems to me that something like overwriting happened between after MBX_post() and before MBX_pend(), so that the global area is overwritten before MBX_pend(). This results in the wrong received data.

If  we know where the "global area" is, we may be able to find out who overwrites it by using the conditional breakpoint. I guess that the address of the "global area" is indicated in one of the 4 areas listed above. If anyone can guide me how to parse the data in the 4 areas, that would be very helpful.

Also has any expert experienced such problem before? Any idea what could be the cause of the problem?

Many thanks in advance.

Xuedong