2013-11-23 53 views
1

Windows Embedded Compact 7.如何测试中断延迟?

有没有办法从用户空间测试中断等待时间?

作为平台构建器的一部分提供了任何工具吗?

我还看到一个名为Intrtime.exe的程序 - 但没有关于如何使用它的例子。

如何测试中断等待时间?

Intrtime.exe的参考,但我该如何实现它?
​​

编辑
还发现:

ILTiming.exe实时测量工具(紧凑型2013)

http://msdn.microsoft.com/en-us/library/ee483144.aspx

回答

5

这实际上是一个需要硬件的测试,并且您可能会测量几个“延迟”。一次是从中断信号到驱动器ISR反应的时间,第二次是从中断发生到IST反应的时间。

I did this back in the CE 3.0/CE 4.0 days通过将信号发生器附加到可中断输入,然后当ISR脉冲接收到中断时具有第二输入的ISR脉冲和第三输入的IST脉冲。我将示波器连接到输入和输出,并用它来测量输入信号和输出信号之间的时间,以获得不仅仅是延迟,还有抖动。您可以轻松地为CE 7添加第4行,以便您可以检查用户空间中的IST和内核空间中的IST。我一定有兴趣看到结果。

我不认为你可以通过在平台上运行的软件来有效地测量这一点,因为你会遇到代码尝试影响结果的问题。你也在谈论时间的方式,低于系统分辨率的分辨率,所以调度器也会有问题。 CeLog可能能够让你了解这些时间,但是让它成立并运行可能比仅仅连接一个范围更有效。

+0

想想我也看到了你在msdn上的报告。不知道我能及时得到一个范围....只是好奇,是ISR代码用户定义或我可以在哪里看到/修改它? –

+1

ISR在BSP中,或者如果平台具有可安装的ISR(IISR支持),那么您可以在代码中使用ISR。如果它在BSP中,那么你需要它的源代码。 – ctacke

1

什么通常被中断的意思延迟是中断源驴之间的时间让中断线和一个线程(有时在用户空间中)被调度,然后作为结果执行。

除非您的CPU在中断事件到达CPU时(而不是当ISR运行时)有一些准确的时间戳中断事件,否则唯一真正准确的测量是外部完成的 - 通过测量中断线被断言,以及线程响应中断的一些可观察信号可以控制。 DSO或逻辑分析仪通常用于此目的。

软件技术通常依靠在ISR中尽早存储准确的时间戳。如果您确定中断线成为断言和ISR运行之间的时间可以忽略不计,那么这可能是有效的。另一方面,如果使用中断禁止来控制并发,或者中断被嵌套,那么你可能也想要测量它。

+0

从中断线到ISR假设时间是可以忽略不计,我有一个高分辨率定时器:我怎么创建中断,在什么/在哪里ISR代码我把开始时间戳和结束时间戳ISThread前?谢谢。 –