一、cfg文件配置
var tskMainThread = Task.create("&StartNetworkTask"); /*创建TCP进程*/
tskMainThread.stackSize = 0x2000;
tskMainThread.priority = 0x5;
tskMainThread.instance.name = "StartNetworkTask";
创建TCP进程 用于从上位机发送和接收图像。将在下一节中介绍
二、main函数
2.1 网络初始化
GbE_init();
2.2 IPC开启
status = Ipc_start();
if (status < 0)
{
System_abort("Ipc_start failed\n");
}
2.3 创建heapBuf
HeapBufMP_Params_init(&heapBufParams);
heapBufParams.regionId = 0;
heapBufParams.name = IMAGE_PROCESSING_HEAP_NAME;//name用于open函数指定打开
heapBufParams.numBlocks = number_of_cores;
heapBufParams.blockSize = sizeof(process_message_t);
heapHandle = HeapBufMP_create(&heapBufParams);
if (heapHandle == NULL)
{
System_abort("HeapBufMP_create failed\n" );
}
/* Register this heap with MessageQ */
status = MessageQ_registerHeap((IHeap_Handle)heapHandle, IMAGE_PROCESSING_HEAPID);
if(status != MessageQ_S_SUCCESS)
{
System_abort("Main: MessageQ_registerHeap failed\n" );
}
System_abort("Main: MessageQ_registerHeap failed\n" );
}
2.4 初始化一些参数
1 给8个核的msg指针分配空间
2 给8个核MessageQ_alloc
3 初始化slave_queue_name
2.5 创建 接收和发送的mailbox
/*===================================================================================
* 邮箱接收的数据: 边缘检测,数据指针和长度,核个数
*=================================================================================== */
master_mbox_receive = Mailbox_create (sizeof(mbox_process_msg_t), 1, 0, 0); //返回值Mailbox_Handle
if(!master_mbox_receive)
{
System_printf("main: Mailbox creation failed for master_mbox_receive\n");
}
/*===================================================================================
* 邮箱发送传递的数据: 数据指针和长度,处理时间,处理结果
*===========================================