一、打开主核创建的heapBuf
/* Open the heap created by the other processor. Loop until opened. */
do {
status = HeapBufMP_open(HEAP_NAME, &heapHandle);
if (status < 0) {
Task_sleep(1);
}
} while (status < 0);
为什么要打开主核创建的heapBuf,因为从核创建的messageQ也应该在这个heap中统一调度管理。
二、创建messageQ(slave)
/* Register this heap with MessageQ */
MessageQ_registerHeap((IHeap_Handle)heapHandle, HEAPID);
/* Create the local message queue */
messageQ = MessageQ_create(localQueueName, NULL);
if (messageQ == NULL)
{
System_abort("MessageQ_create failed
" );
}
三、打开主核messageQ(master)
/* Open the remote message queue. Spin until it is ready. */
do
{
status = MessageQ_open(masterQueueName, &remoteQueueId);
if (status < 0)
{
Task_sleep(1);
}
} while (status < 0);
四、接收主核的messageQ(master)
主核在收到FPGA的数据之后,会分配给各个核进行处理。这里接收的msg就是将要处理的内容
status = MessageQ_get(messageQ, &msg, MessageQ_FOREVER);
if (status < 0)
{
System_abort("This should not happen since timeout is forever
");
}
五、从核处理函数
对于数据进行处理,涉及到sharememory的问题。这个问题后续再讨论。
六、发送messageQ(master)
status = MessageQ_put(remoteQueueId, msg);
if (status < 0)
{
System_abort("MessageQ_put had a failure/error
");
}
=======================================================================
最近新开的公众号,文章正在一篇篇的更新,
公众号名称:
玩转电子世界。
各位朋友有什么问题了可以直接在上面提问,我会一一进行解答的。
跟着阳光非宅男,一步步走进电子的世界。
关注之后回复 资料下载 关键词可以获得
免费海量的视频学习资料下载~~!
已共享的学习视频资料,共享资料正在不断更新中。。。
=======================================================================