To perform a cross check to my hardware timer measurements (see here), I tried to measure the ISR-IST latency with the Windows CE built-in ILTiming tool.
Target -> Run Programs -> Execute command line:
iltiming.exe -n 5000
However, the tool ignores the number of interrupts i pass to it as command line parameters:
Output of Windows CE Debug:
Run Programs s iltiming -n 5000 2984731 PID:3d5004e TID:3f3004e ++ILTiming (Loader): (-n 5000) 2993663 PID:45f001a TID:460001a ++ILTiming (Loader): (-z -i0)
2973936 PID:400002 TID:3f3004e RELFSD: Opening file iltiming.exe from desktop
PB Debugger Loaded symbols for 'C:\WINCE600\OSDESIGNS\EVM_3530\EVM_3530\RELDIR\TI_EVM_3530_ARMV4I_RELEASE\ILTIMING.EXE'
s iltiming -n 5000 10:12:18 11/29/2010 W. Europe Standard Time
End s iltiming -n 5000 10:12:18 11/29/2010 W. Europe Standard Time
2991699 PID:400002 TID:3f3004e RELFSD: Opening file iltiming_dll.dll from desktop
PB Debugger Loaded symbols for 'C:\WINCE600\OSDESIGNS\EVM_3530\EVM_3530\RELDIR\TI_EVM_3530_ARMV4I_RELEASE\ILTIMING_DLL.DLL'
2992018 PID:400002 TID:3f3004e iltiming -n 5000
2993237 PID:400002 TID:460001a RELFSD: Opening file iltiming.exe from desktop
PB Debugger Loaded symbols for 'C:\WINCE600\OSDESIGNS\EVM_3530\EVM_3530\RELDIR\TI_EVM_3530_ARMV4I_RELEASE\ILTIMING.EXE'
2993664 PID:400002 TID:460001a iltiming -z -i0
2993664 PID:400002 TID:460001a Secondary ILTIMING process starting.
2994165 PID:400002 TID:3f3004e
PB Debugger Unloaded symbols for 'C:\WINCE600\OSDESIGNS\EVM_3530\EVM_3530\RELDIR\TI_EVM_3530_ARMV4I_RELEASE\ILTIMING.EXE'
PB Debugger Unloaded symbols for 'C:\WINCE600\OSDESIGNS\EVM_3530\EVM_3530\RELDIR\TI_EVM_3530_ARMV4I_RELEASE\ILTIMING.EXE'
2994165 PID:400002 TID:3f3004e
2994165 PID:400002 TID:3f3004e vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
2994165 PID:400002 TID:3f3004e vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
2994165 PID:400002 TID:3f3004e ===================================================================
2994165 PID:400002 TID:3f3004e INTERPRETING THE ILTIMING RESULTS
2994165 PID:400002 TID:3f3004e -------------------------------------------------------------------
2994165 PID:400002 TID:3f3004e ILTiming measures the interrupt service routine (ISR) and
2994165 PID:400002 TID:3f3004e interrupt service thread (IST) latencies.
2994166 PID:400002 TID:3f3004e
2994166 PID:400002 TID:3f3004e ISR latency measured is the time from the physical interrupt
2994166 PID:400002 TID:3f3004e asserting (timer wrap) to the start of the OEM ISR code.
2994166 PID:400002 TID:3f3004e
2994166 PID:400002 TID:3f3004e -------------------------------------------------------------------
2994166 PID:400002 TID:3f3004e SYSTEM BUILD INFO
2994166 PID:400002 TID:3f3004e
2994166 PID:400002 TID:3f3004e PLATFORM = EVM3530
2994167 PID:400002 TID:3f3004e PROCESSOR = ARMV4I
2994167 PID:400002 TID:3f3004e CONFIG = speech
2994167 PID:400002 TID:3f3004e RET/DEBUG = retail
2994183 PID:400002 TID:3f3004e BUILD DATE = Sep 6 2006 @ (19:32:33)
2994183 PID:400002 TID:3f3004e -------------------------------------------------------------------
2994183 PID:400002 TID:3f3004e COUNTER INFO
2994183 PID:400002 TID:3f3004e
2994184 PID:400002 TID:3f3004e Counter Frequency = 32768 Hz
2994184 PID:400002 TID:3f3004e Counter tick interval = 30517 ns
2994184 PID:400002 TID:3f3004e -------------------------------------------------------------------
2994184 PID:400002 TID:3f3004e RUNTIME OPTIONS
2994184 PID:400002 TID:3f3004e
2994185 PID:400002 TID:3f3004e Timing interval = 5
2994185 PID:400002 TID:3f3004e Number of interrupts = 10
2994185 PID:400002 TID:3f3004e ===================================================================
2994185 PID:400002 TID:3f3004e ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2994185 PID:400002 TID:3f3004e ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2994186 PID:400002 TID:3f3004e
2994186 PID:400002 TID:3f3004e
2994235 PID:400002 TID:3f3004e All times are in microseconds.
2994235 PID:400002 TID:3f3004e Summary:
2994235 PID:400002 TID:3f3004e ISR starts IST starts
2994235 PID:400002 TID:3f3004e min 976.5 0.0
2994235 PID:400002 TID:3f3004e ave 1025.3 0.0
2994235 PID:400002 TID:3f3004e max 1281.7 0.0
2994235 PID:400002 TID:3f3004e Build,Platform,Processor,Project,Debug,Number of Interrupts,ISR Min,ISR Max,ISR Ave,IST Min,IST Max,IST Ave,Thread Priority,Idle Threads
2994235 PID:400002 TID:3f3004e 0,EVM3530,ARMV4I,speech,retail,10,976.5,1281.7,1025.3,0.0,0.0,0.0,0,0
2994236 PID:3d5004e TID:3f3004e --ILTiming (Loader): Done!
2994623 PID:400002 TID:460001a Exiting secondary ILTIMING process.
2994623 PID:45f001a TID:460001a --ILTiming (Loader): Done!
What's wrong with ILTiming?
References:
ILTiming on MSDN: http://msdn.microsoft.com/en-us/library/aa450554.aspx