搜索
bottom↓
回复: 15

同样的程序在28346里运行时间比在28335里的时间长,什么原因?

[复制链接]

出0入0汤圆

发表于 2015-3-17 10:56:29 | 显示全部楼层 |阅读模式
28346的速率是28335的两倍,但是为什么同样的程序在TMS320C28346里执行的时间比在28335里执行的时间长很多,几乎是2倍,这是什么原因?求指导!谢谢!

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

发表于 2015-3-17 11:50:09 | 显示全部楼层
1、你确认是同样的代码,一字不差?
2、检查时钟
3、测过几次?是否可能刚好执行过程中被中断打断导致?

出0入0汤圆

发表于 2015-3-17 11:53:43 | 显示全部楼层
估计是时钟不对

出0入0汤圆

 楼主| 发表于 2015-3-17 14:56:26 | 显示全部楼层
steaven2000 发表于 2015-3-17 11:50
1、你确认是同样的代码,一字不差?
2、检查时钟
3、测过几次?是否可能刚好执行过程中被中断打断导致?

确实是一样的代码,时钟正确的,执行时间小于中断周期,其他还有可能是什么原因?
谢谢~

出0入0汤圆

 楼主| 发表于 2015-3-17 14:57:24 | 显示全部楼层

时钟对的,测过的

出0入0汤圆

发表于 2015-3-17 16:01:57 | 显示全部楼层
jacktom 发表于 2015-3-17 14:56
确实是一样的代码,时钟正确的,执行时间小于中断周期,其他还有可能是什么原因?
谢谢~ ...


那不就对了!
你要确保这段代码在执行时不会被任何中断打断才行。
举例说明吧:假定测试代码运行2ms,中断运行10ms。
第一次,测试代码运行了2ms,完了,测试时间是2ms;
第二次,测试代码运行了1ms,中断来了,执行10ms,然后测试代码继续运行1ms,完了,测试时间是12ms

你能说第二次这段代码运行时间是第一次的6倍?更何况你的中断可能发生多次,更何况你的测试代码里面有if/else条件运行语句,这些影响你分析了吗?

出0入0汤圆

发表于 2015-3-17 19:15:36 | 显示全部楼层
怎么判断出慢两倍?IO翻转还是CPU执行计数?

出0入0汤圆

 楼主| 发表于 2015-3-18 09:46:38 | 显示全部楼层
steaven2000 发表于 2015-3-17 16:01
那不就对了!
你要确保这段代码在执行时不会被任何中断打断才行。
举例说明吧:假定测试代码运行2ms,中 ...

我是这样测试的,一进中断就让一个IO口输出1,中断最后再让它输出0,用示波器看的。这样应该不会有你说的问题吧~

出0入0汤圆

 楼主| 发表于 2015-3-18 09:47:56 | 显示全部楼层
siyeb 发表于 2015-3-17 19:15
怎么判断出慢两倍?IO翻转还是CPU执行计数?

是IO翻转~

出0入0汤圆

发表于 2015-3-18 10:07:27 | 显示全部楼层

那程序是在FLASH里运行还是SRAM还是内部RAM?关掉中断呢?

出0入0汤圆

 楼主| 发表于 2015-3-18 11:03:16 | 显示全部楼层
siyeb 发表于 2015-3-18 10:07
那程序是在FLASH里运行还是SRAM还是内部RAM?关掉中断呢?

是用仿真器在ram里运行的

出0入0汤圆

发表于 2015-3-18 11:08:18 | 显示全部楼层
编译器设置都一样  有没有设置优化什么的

出0入0汤圆

发表于 2015-3-18 11:12:57 | 显示全部楼层
jacktom 发表于 2015-3-18 11:03
是用仿真器在ram里运行的

哎呀,那就奇怪了。
IO反转是进中断置高,出中断置低?那两相比较,方波的频率变化多少?占空比呢?28346的占空比应该比28335的要小才对?

出0入0汤圆

 楼主| 发表于 2015-3-18 14:32:42 | 显示全部楼层
siyeb 发表于 2015-3-18 11:12
哎呀,那就奇怪了。
IO反转是进中断置高,出中断置低?那两相比较,方波的频率变化多少?占空比呢?28346 ...

频率就是中断的频率,时间确实比28335要长,太诡异了。。。

出0入0汤圆

发表于 2015-3-18 16:10:32 | 显示全部楼层
jacktom 发表于 2015-3-18 14:32
频率就是中断的频率,时间确实比28335要长,太诡异了。。。

写一个定时中断的程序比如4us,在中断中翻转IO,看看两个芯片的输出是否一致。

出0入0汤圆

 楼主| 发表于 2015-3-18 16:14:30 | 显示全部楼层
siyeb 发表于 2015-3-18 16:10
写一个定时中断的程序比如4us,在中断中翻转IO,看看两个芯片的输出是否一致。 ...

好的,我试试。谢谢~
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-10-19 22:42

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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