平台是C6657,想用qmss从core1发一个数据到core0,自定义了一个结构体,主要代码如下:
typedef struct Msg{
MessageQ_Msg msg;
int a;
}Message;
Message *message;
if (selfId == 1) {
while(1){
message = (Message *)MessageQ_alloc(HEAP_ID, sizeof(Message));
if (message == NULL) {
System_abort("MessageQ_alloc failed\n");
}
message->a = 10000;
/* Kick off the loop */
int i;
for(i=0;i<10000000;i++);
status = MessageQ_put(nextQueueId, (MessageQ_Msg)message);
if (status < 0) {
System_abort("MessageQ_put failed\n");
break;
}
else{
System_printf("put success\n");
}}
}
else if(selfId == 0){
System_printf("core 0 for getting\n");
while(1){
status = MessageQ_get(messageQ, (MessageQ_Msg*)&message, MessageQ_FOREVER);
if (status < 0) {
System_abort("MessageQ_get failed\n");
break;
}
else{
System_printf("get success,status = %d\n",status);
}
int out;
out = message->a;
System_printf("get %d\n",out);
MessageQ_free((MessageQ_Msg)message);}
}
数据可以发送,但取出来的数据错误,不管发送的数据是多少,每次显示的都是相同的一个数,请问是哪儿出问题了?