代码在使用SYSLINK时,执行时间会增加 - TMS320C6748 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 512|回复: 3

[未解决] 代码在使用SYSLINK时,执行时间会增加

[复制链接]

8

主题

31

帖子

158

积分

注册会员

Rank: 2

积分
158
发表于 2018-8-5 21:48:53 | 显示全部楼层 |阅读模式
本帖最后由 15901123858 于 2018-8-5 21:50 编辑

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

我知道答案 本帖寻求最佳答案回答被采纳后将获得系统奖励0 , 目前已有3人回答
最近访问 头像模式 列表模式
回复

使用道具 举报

2

主题

167

帖子

610

积分

广州创龙

Rank: 8Rank: 8

积分
610
发表于 2018-8-6 16:23:47 | 显示全部楼层
您好,如果双核通信频繁的话,是有可能会导致运行程序变慢的。
回复 支持 反对

使用道具 举报

8

主题

31

帖子

158

积分

注册会员

Rank: 2

积分
158
 楼主| 发表于 2018-8-6 20:56: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才查看消息队列,才开始接收处理共享内存的数据。
在此期间并没有双核通信发生,不知道我的理解对不对。
回复 支持 反对

使用道具 举报

2

主题

4

帖子

1038

积分

金牌会员

Rank: 6Rank: 6

积分
1038
发表于 2018-8-17 16:14:32 | 显示全部楼层
可能是你, 统计时间方法是不准确的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则  回帖提醒

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号-1  

GMT+8, 2018-12-19 06:19 , Processed in 0.172677 second(s), 40 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表