This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

连续运行比单步运行测得的机器周期数多,这是什么原因呢?



您好,我现在通过EMIF接口外扩了一个芯片,需要对其进行快速操作。所以通过profile中的clock工具测试了其执行周期。

但测试中发现,采用step in跳入写函数机器周期数为13,但是采用step over跳过写函数机器周期为57。

开始怀疑是EMIF的写周期过长,CPU要等待,所以连续运行时的机器周期多。按照该思路,修改了EMIF的write setup和write strobe,但是连续写的机器周期仍然为57。

我想问下这是什么原因呢?

 

期待您的答复,谢谢…

 

PS;我使用的处理器为VC5509A,软件环境为CCS3.3,仿真器为PCI560.

  • 修改了EMIF的write setup和write strobe会影响写周期吗?我觉得可能不影响,所以测出来结果还是一样。我感觉EMIF写周期是由时钟周期决定的?

  • 谢谢,总算有人回复了:)

    我的意思是:假设CPU通过EMIF接口对一个慢速设备写数据,CPU写如EMIF外设后,就去执行其他操作了;而由EMIF根据设定的write setup和write strobe对慢速设备执行写时序操作。倘若EMIF写数据的周期过长,CPU执行写操作的频率就不能过快。因而要提高写速度,首先应当减小EMIF写时序的时间,即修改write setup和write strobe。

    开始是这样理解的:CPU通过执行空指令来等待EMIF写操作完成,然后再去执行其他操作。所以才想到减小write setup和write strobe,以减小CPU等待的时间。正如您所说,CPU向EMIF写数据机器周期应当是和write setup和write strobe无关的。

    既然不是这个原因,那为何连续运行测得的机器周期要比单步运行多呢?连续运行和单步运行有什么不同吗?

    另外,能否给我一个您的联系方式。积攒了很多问题,苦于一直无人解答。我的邮箱是:fengguojin@gmail.com

    非常谢谢…

  • 我不知道你的程序具体是怎么写的,只能猜测如果你是CPU连续写的话,得等上一个写完了才写下一个,虽然CPU有空闲,但是因为要等待,所以会比单步写(CPU不等待,因为不需要写下一个)时间长。

    对于EMIF外接的慢速设备,一般都是用EDMA写啊?为什么要用CPU写呢?

    我的能力很有限,你的问题请你贴在论坛上,靠论坛的力量才能更好的帮助你。

  • 又实验了下,应该就是CPU在等待写入数据结束的缘故。

    谢谢您的建议,后面将修改为DMA来写入数据。