同样的程序在28346里运行时间比在28335里的时间长,什么原因?
28346的速率是28335的两倍,但是为什么同样的程序在TMS320C28346里执行的时间比在28335里执行的时间长很多,几乎是2倍,这是什么原因?求指导!谢谢! 1、你确认是同样的代码,一字不差?2、检查时钟
3、测过几次?是否可能刚好执行过程中被中断打断导致?
估计是时钟不对 steaven2000 发表于 2015-3-17 11:50
1、你确认是同样的代码,一字不差?
2、检查时钟
3、测过几次?是否可能刚好执行过程中被中断打断导致?
确实是一样的代码,时钟正确的,执行时间小于中断周期,其他还有可能是什么原因?
谢谢~ hkchenhao 发表于 2015-3-17 11:53
估计是时钟不对
时钟对的,测过的 jacktom 发表于 2015-3-17 14:56
确实是一样的代码,时钟正确的,执行时间小于中断周期,其他还有可能是什么原因?
谢谢~ ...
那不就对了!
你要确保这段代码在执行时不会被任何中断打断才行。
举例说明吧:假定测试代码运行2ms,中断运行10ms。
第一次,测试代码运行了2ms,完了,测试时间是2ms;
第二次,测试代码运行了1ms,中断来了,执行10ms,然后测试代码继续运行1ms,完了,测试时间是12ms
你能说第二次这段代码运行时间是第一次的6倍?更何况你的中断可能发生多次,更何况你的测试代码里面有if/else条件运行语句,这些影响你分析了吗?
怎么判断出慢两倍?IO翻转还是CPU执行计数? steaven2000 发表于 2015-3-17 16:01
那不就对了!
你要确保这段代码在执行时不会被任何中断打断才行。
举例说明吧:假定测试代码运行2ms,中 ...
我是这样测试的,一进中断就让一个IO口输出1,中断最后再让它输出0,用示波器看的。这样应该不会有你说的问题吧~ siyeb 发表于 2015-3-17 19:15
怎么判断出慢两倍?IO翻转还是CPU执行计数?
是IO翻转~ jacktom 发表于 2015-3-18 09:47
是IO翻转~
那程序是在FLASH里运行还是SRAM还是内部RAM?关掉中断呢? siyeb 发表于 2015-3-18 10:07
那程序是在FLASH里运行还是SRAM还是内部RAM?关掉中断呢?
是用仿真器在ram里运行的 编译器设置都一样有没有设置优化什么的 jacktom 发表于 2015-3-18 11:03
是用仿真器在ram里运行的
哎呀,那就奇怪了。
IO反转是进中断置高,出中断置低?那两相比较,方波的频率变化多少?占空比呢?28346的占空比应该比28335的要小才对? siyeb 发表于 2015-3-18 11:12
哎呀,那就奇怪了。
IO反转是进中断置高,出中断置低?那两相比较,方波的频率变化多少?占空比呢?28346 ...
频率就是中断的频率,时间确实比28335要长,太诡异了。。。 jacktom 发表于 2015-3-18 14:32
频率就是中断的频率,时间确实比28335要长,太诡异了。。。
写一个定时中断的程序比如4us,在中断中翻转IO,看看两个芯片的输出是否一致。 siyeb 发表于 2015-3-18 16:10
写一个定时中断的程序比如4us,在中断中翻转IO,看看两个芯片的输出是否一致。 ...
好的,我试试。谢谢~
页:
[1]