Other Parts Discussed in Thread: BEAGLEBOARD-X15, AM5729, SYSBIOS
Hi all,
my platform:
AM5729 on BeagleBoard-X15
bios_6_75_02_00 running on both cores ARM Cortex-A15 core 0 and DSP C66x core 0
processor_sdk_rtos_am57xx_5_03_00_07
pdk_am57xx_1_0_14
ipc_3_50_03_05
CCS 7.2.00013 on Win10
I'm trying to use static allocated messages to transfer message from ARM core to DSP core, but any static allocated message causes program crash when it is passed to MessageQ_put function. I don't know if I use static messages correct. Can you please explain what is the correct approach to use static allocated messages?
I used IPC example project:
C:\ti\ipc_3_50_03_05\examples\AM572X_bios_elf\ex02_messageq\
In App.c I created buffer for static messages:
App_Msg buffer[NUM_MSGS] __attribute__ ((section ("OCMC_SHARED")));
In Host.cfg I defined OCMC_SHARED as:
Program.sectMap["OCMC_SHARED"] = "OCMC_RAM1";
And in App.c in App_exec() function I replaced dynamic allocation with assignation from "buffer":
//msg = (App_Msg *)MessageQ_alloc(Module.heapId, Module.msgSize);
msg = buffer + msgCnt;
MessageQ_staticMsgInit((MessageQ_Msg)msg, sizeof(App_Msg));
When that "msg" is passed to MessageQ_put() function, that is few lines below, it causes program crash and the debug jumps to _exit function in syscalls.c or I have got exception with text:
CortexA15_0: Unhandled ADP_Stopped exception
So, what is the correct way how to use static allocated messages?