[quote user="yuxin yuan"]
Thanks a lot! I don't know how to use the ROV tool.... The program aborts with the message that shown in the console:
[C66xx_1] ti.sdo.ipc.MessageQ: line 441: assertion failure: A_invalidQueueId: Invalid queueId is used
xdc.runtime.Error.raise: terminating execution
[/quote]
So, your program must be getting past the Sync wait and returning to MessageQ_get(), where it discovers the bad queueId.
EDIT: As noted before, the above assertion is coming from MessageQ_put(), which you don't directly call in your application. However, the transports generally will call MessageQ_put(), which is where your assertion on Core 1 must be happening.
Getting back to your original post, you have this:
message = (Message *)MessageQ_alloc(HEAP_ID, sizeof(Message));
if (message == NULL) {
System_abort("MessageQ_alloc failed\n");
}
message->num[1] = i;
Can you show me the definition of the type "Message"?
EDIT: I found the definition of your Message type, in the C files you included earlier. It looks fine, so please ignore the above question.
I ask because it needs to have its first element be a MessageQ_MsgHeader, and I worry that it doesn't have this and you're overwriting the header with the message->num[1] = i; statement.
[quote user="yuxin yuan"]
Where can I learn how to write the .cfg file?
[/quote]
This link will take you to a wiki page about a TI-RTOS workshop. You could take the workshop if you desire, but this page contains lots of good links, including one to online tutorial videos: http://processors.wiki.ti.com/index.php/Introduction_to_the_TI-RTOS_Kernel_Workshop
Chapter 4 contains project and config file writing help.
Here is the general TI-RTOS wiki page: http://processors.wiki.ti.com/index.php/TI-RTOS
Regards,
- Rob