嵌入式开发者社区

标题: 代码在使用SYSLINK时,执行时间会增加 [打印本页]

作者: 15901123858    时间: 2018-8-5 21:48
标题: 代码在使用SYSLINK时,执行时间会增加
本帖最后由 15901123858 于 2018-8-5 21:50 编辑

我使用的是OMAPL138开发板,在OMAPL138的ARM端(DSP不启动)执行一段程序的时间为200ms(使用gettimeofday函数测量时间);然后使用创龙教程的ex04_sharedregion工程,即在ARM开启SYSLINK时,同样的代码在ARM端的运行时间升至230ms(代码放在双核通信前、通信中、通信后的执行时间都一致),相当于执行变慢了。
请问下各位可能是什么原因啊?


作者: 广州创龙莫工    时间: 2018-8-6 16:23
您好,如果双核通信频繁的话,是有可能会导致运行程序变慢的。
作者: 15901123858    时间: 2018-8-6 20:56
广州创龙莫工 发表于 2018-8-6 16:23
您好,如果双核通信频繁的话,是有可能会导致运行程序变慢的。

您好莫工,在ex04_sharedregion工程的HOST文件夹下的APP.C文件中,我增加的代码如下
。。。。。
if (status < 0 )  
{
printf("App_exec: Error sending shared region pointer address upper "
                                    "two bytes\n");
goto leave;
}                              
/* wait for shared region address acknowledge command */
event = App_waitForEvent(&Module.eventQueue);

if (event >= APP_E_FAILURE)
{
printf("App_exec: Received queue error: %d\n",event);
status = -1;      
goto leave;
}

/*
在此处增加自己的处理函数
*/


/* 4. wait for operation complete command */
event = App_waitForEvent(&Module.eventQueue);

if (event >= APP_E_FAILURE)
{
printf("App_exec: Received queue error: %d\n",event);
status = -1;      
goto leave;
}

我的理解是ARM刚刚把共享内存的地址给DSP并收到的DSP的响应,在此期间并没有双核通信发生,直到我自己写的代码结束,ARM才查看消息队列,才开始接收处理共享内存的数据。
在此期间并没有双核通信发生,不知道我的理解对不对。
作者: bobhi009    时间: 2018-8-17 16:14
可能是你, 统计时间方法是不准确的





欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4