Hi, all:
Now I run the syslink samples on the c6678 board. The core0 runs linux
and the other core run BIOS. The samples I run is messageQ.
The issue I got is that this sample runs unstable. About 10% possibility
the system got dead. I check the reason and find that: When core0 finishes
commnunicating with core1 and switches to core2, it needs to read the
app config of core2 by calling Ipc_readConfig(), and the program stuck in it.
Here is the code:
/* Read the app info, This info is only read by HOST as it does not have
* static configuration feature as provided by XDC.
*/
do {
status = Ipc_readConfig (rProcId,
APP_INFO_TAG,
&aInfo,
sizeof (App_Info));
} while (status == Ipc_E_FAIL);
The address of core2's configuration is sometimes changed. When the program
runs OK, this address is 0x5B00, but when program not running OK, this address
becomes 0x0C07XXXX, so the programm runs wrong. Further more, I can focus to
the point where this address is changed, it is mostly changed after running
MessageQ_get(). I change the sample to let the core0 only receiving msg, the
other cores only send msg. But this problem still exists. The configs address
often changes after MessageQ_get().
So what's the reason calling this unstabiltiy? Hope for help.
My linux is linux-c6x.