2013-11-23 79 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前?謝謝。 –