Hi there,
Ive tried out the MessageQ mechanism on my c6x chip using SYSLINK and succeeded in sending messages over from sys/bios to linux.
However, it seems that the maximum size of the message I can send over is 512 Bytes.
I've created my message as followed:
typedef struct MyData{
int data0[64];
int data1[64];
int data2[64];
int data3[64];
int data4[64];
int reserve0[8];
int reserve0[8];
}
typedef struct MyMsg{
MessageQ_MsgHeader header;
MyData data;
} MyMsg;
typedef MyMsg *MyMsgPointer;
in my config file i have declared a larger heap size for my message:
Program.global.HEAP_MSGSIZE = 5504
Now I can perfectly transmit and receive these messages from sys/bios to linux, however, when I try to write the message to file, it only writes 512 Bytes instead of 1376 Bytes, which I would assume it should write.
what I do on the linux side is:
MyMsgPointer message = NULL;
status = MessageQ_get(messageQ, (MessageQ_Msg*) &message, MessageQ_FOREVER):
put_data_to_file("test.txt", message, sizeof(MyMsg));
This last function is my own function which uses fopen and fwrite to write a message to a file.
This function works perfectly, also on the above mentioned data structure, so that should not be the problem.
Any ideas anyone?