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.

ILTiming ignoring command line parameters

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
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

2984731 PID:3d5004e TID:3f3004e ++ILTiming (Loader): (-n 5000)
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'

2993663 PID:45f001a TID:460001a ++ILTiming (Loader): (-z -i0)
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

  • Hi,

    It's not ILTIMING that seems to be the problem here. When you launch "Run Programs", it turns into the following line into the "Target Control" shell:

    >s iltiming -n 5000

    The target control shell would expect the parameteres to be passed between quotes like :

    >s iltiming "-n 5000"

    Try to directly type the command above in the target control shell (Press Alt+1 to open it under VS2005) and see if your parameters are parsed.

     

     

     

  • Hi Vijay

    Thank you for your quick reply. Unfortunately, it doesn't solve the problem:

    1. Target control shell:
    Windows CE>s iltiming.exe -n 5000

    4123911 PID:400002 TID:3f3007e 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'
    4124374 PID:3d5007e TID:3f3007e ++ILTiming (Loader): (-n 5000)
    4124374 PID:400002 TID:3f3007e iltiming -n 5000
    4125490 PID:400002 TID:46f001a 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'
    4125908 PID:46e001a TID:46f001a ++ILTiming (Loader): (-z -i0)
    4125908 PID:400002 TID:46f001a iltiming -z -i0
    4125908 PID:400002 TID:46f001a Secondary ILTIMING process starting.
    4126410 PID:400002 TID:3f3007e
    4126410 PID:400002 TID:3f3007e
    4126410 PID:400002 TID:3f3007e vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
    PB Debugger Unloaded symbols for 'C:\WINCE600\OSDESIGNS\EVM_3530\EVM_3530\RELDIR\TI_EVM_3530_ARMV4I_RELEASE\ILTIMING.EXE'
    4126410 PID:400002 TID:3f3007e vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
    4126410 PID:400002 TID:3f3007e ===================================================================
    4126410 PID:400002 TID:3f3007e INTERPRETING THE ILTIMING RESULTS
    4126410 PID:400002 TID:3f3007e -------------------------------------------------------------------
    4126410 PID:400002 TID:3f3007e ILTiming measures the interrupt service routine (ISR) and
    4126410 PID:400002 TID:3f3007e interrupt service thread (IST) latencies.
    4126410 PID:400002 TID:3f3007e
    4126411 PID:400002 TID:3f3007e ISR latency measured is the time from the physical interrupt
    4126411 PID:400002 TID:3f3007e asserting (timer wrap) to the start of the OEM ISR code.
    4126411 PID:400002 TID:3f3007e
    4126411 PID:400002 TID:3f3007e -------------------------------------------------------------------
    4126411 PID:400002 TID:3f3007e SYSTEM BUILD INFO
    PB Debugger Unloaded symbols for 'C:\WINCE600\OSDESIGNS\EVM_3530\EVM_3530\RELDIR\TI_EVM_3530_ARMV4I_RELEASE\ILTIMING.EXE'
    4126411 PID:400002 TID:3f3007e
    4126412 PID:400002 TID:3f3007e PLATFORM = EVM3530
    4126412 PID:400002 TID:3f3007e PROCESSOR = ARMV4I
    4126412 PID:400002 TID:3f3007e CONFIG = speech
    4126426 PID:400002 TID:3f3007e RET/DEBUG = retail
    4126426 PID:400002 TID:3f3007e BUILD DATE = Sep 6 2006 @ (19:32:33)
    4126427 PID:400002 TID:3f3007e -------------------------------------------------------------------
    4126427 PID:400002 TID:3f3007e COUNTER INFO
    4126427 PID:400002 TID:3f3007e
    4126427 PID:400002 TID:3f3007e Counter Frequency = 32768 Hz
    4126427 PID:400002 TID:3f3007e Counter tick interval = 30517 ns
    4126427 PID:400002 TID:3f3007e -------------------------------------------------------------------
    4126428 PID:400002 TID:3f3007e RUNTIME OPTIONS
    4126428 PID:400002 TID:3f3007e
    4126428 PID:400002 TID:3f3007e Timing interval = 5
    4126428 PID:400002 TID:3f3007e Number of interrupts = 10
    4126428 PID:400002 TID:3f3007e ===================================================================
    4126428 PID:400002 TID:3f3007e ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    4126428 PID:400002 TID:3f3007e ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    4126428 PID:400002 TID:3f3007e
    4126429 PID:400002 TID:3f3007e
    4126479 PID:400002 TID:3f3007e All times are in microseconds.
    4126479 PID:400002 TID:3f3007e Summary:
    4126479 PID:400002 TID:3f3007e ISR starts IST starts
    4126479 PID:400002 TID:3f3007e min 976.5 0.0
    4126479 PID:400002 TID:3f3007e ave 1003.9 0.0
    4126479 PID:400002 TID:3f3007e max 1007.0 0.0
    4126479 PID:400002 TID:3f3007e Build,Platform,Processor,Project,Debug,Number of Interrupts,ISR Min,ISR Max,ISR Ave,IST Min,IST Max,IST Ave,Thread Priority,Idle Threads
    4126479 PID:400002 TID:3f3007e 0,EVM3530,ARMV4I,speech,retail,10,976.5,1007.0,1003.9,0.0,0.0,0.0,0,0
    4126480 PID:3d5007e TID:3f3007e --ILTiming (Loader): Done!
    4126869 PID:400002 TID:46f001a Exiting secondary ILTIMING process.
    4126869 PID:46e001a TID:46f001a --ILTiming (Loader): Done!

    2. Run Programs with quotes: iltiming.exe "-n 5000"

    Run Programs s iltiming "-n 5000"
    3979379 PID:400002 TID:3d5007a 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'
    3979763 PID:3d40066 TID:3d5007a ++ILTiming (Loader): ("-n 5000")
    s iltiming "-n 5000" 10:28:15 11/29/2010 W. Europe Standard Time
    End s iltiming "-n 5000" 10:28:15 11/29/2010 W. Europe Standard Time
    3979763 PID:400002 TID:3d5007a Usage: iltiming [ options ]
    3979763 PID:400002 TID:3d5007a Options:
    3979763 PID:400002 TID:3d5007a -p num Priority of the IST (default 0 ; highest)
    3979763 PID:400002 TID:3d5007a -ni no idle priority thread (default)
    3979763 PID:400002 TID:3d5007a -i0 no idle thread (same as -ni)
    3979763 PID:400002 TID:3d5007a -i1 Run idle thread type 1 (simple spin thread)
    3979763 PID:400002 TID:3d5007a -i2 Run idle thread type 2 (CeSetThreadPriority)
    3979763 PID:400002 TID:3d5007a -i3 Run idle thread type 3 (WaitForSingleObject w/ timeout)
    3979763 PID:400002 TID:3d5007a -i4 Run idle thread type 4 (WaitForSingleObject w/o timeout)
    3979763 PID:400002 TID:3d5007a -i5 Run idle thread type 5 (VirtualAlloc/VirtualFree)
    3979763 PID:400002 TID:3d5007a -t num SYSINTR_TIMING interval (default 5)
    PB Debugger Unloaded symbols for 'C:\WINCE600\OSDESIGNS\EVM_3530\EVM_3530\RELDIR\TI_EVM_3530_ARMV4I_RELEASE\ILTIMING.EXE'
    3979763 PID:400002 TID:3d5007a -n num number of interrupts (default 10)
    3979763 PID:400002 TID:3d5007a -all print all data (default: print summary only)
    3979763 PID:400002 TID:3d5007a -o file output to file (default: output to debug)
    3979763 PID:3d40066 TID:3d5007a Kernel mode ILTIMING failed
    3979763 PID:3d40066 TID:3d5007a --ILTiming (Loader): Done!

     

  • Ok it seems that you should not use the quotes and keep calling it the way you were doing in the first place. After investigation, it looks to me that there might be a problem with ILTIMING parsing these parameters, and the same thing is observed on all the ILTIMING logs I found online (i.e. http://e2e.ti.com/support/embedded/f/353/t/67286.aspx).

    The ILTIMING code is available in the public code under \WINCE600\PUBLIC\COMMON\OAK\UTILS\ILTIMING\iltiming.c if you want to have a look, but I could not see any parsing issue at first look. Before we investigate further, can you please try to run the same command from the "Execute" menu directly on the board or using a .bat file you could directly call from the Desktop. You can also try using telnet if available. The idea is to try calling ILTMING not using the target control shell that might not pass the parameteres properly.

    Let me know how it goes.

     

     

  • Yes i also had a quick look at the source code, but didn't find an obvious problem.
    Same behaviour also when running from the command prompt:

    7930742 PID:400002 TID:4400026 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'
    7932240 PID:43a0026 TID:4400026 ++ILTiming (Loader): (-n 5000)
    7932240 PID:400002 TID:4400026 iltiming -n 5000
    7932247 PID:400002 TID:4570026 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'
    7932700 PID:4550026 TID:4570026 ++ILTiming (Loader): (-z -i0)
    7932701 PID:400002 TID:4570026 iltiming -z -i0
    7932701 PID:400002 TID:4570026 Secondary ILTIMING process starting.
    7933202 PID:400002 TID:4400026
    7933202 PID:400002 TID:4400026
    7933202 PID:400002 TID:4400026 vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
    7933202 PID:400002 TID:4400026 vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
    7933202 PID:400002 TID:4400026 ===================================================================
    7933202 PID:400002 TID:4400026 INTERPRETING THE ILTIMING RESULTS
    PB Debugger Unloaded symbols for 'C:\WINCE600\OSDESIGNS\EVM_3530\EVM_3530\RELDIR\TI_EVM_3530_ARMV4I_RELEASE\ILTIMING.EXE'
    7933202 PID:400002 TID:4400026 -------------------------------------------------------------------
    7933202 PID:400002 TID:4400026 ILTiming measures the interrupt service routine (ISR) and
    7933203 PID:400002 TID:4400026 interrupt service thread (IST) latencies.
    7933203 PID:400002 TID:4400026
    7933203 PID:400002 TID:4400026 ISR latency measured is the time from the physical interrupt
    7933203 PID:400002 TID:4400026 asserting (timer wrap) to the start of the OEM ISR code.
    7933203 PID:400002 TID:4400026
    7933203 PID:400002 TID:4400026 -------------------------------------------------------------------
    7933203 PID:400002 TID:4400026 SYSTEM BUILD INFO
    7933203 PID:400002 TID:4400026
    7933203 PID:400002 TID:4400026 PLATFORM = EVM3530
    7933203 PID:400002 TID:4400026 PROCESSOR = ARMV4I
    7933203 PID:400002 TID:4400026 CONFIG = speech
    PB Debugger Unloaded symbols for 'C:\WINCE600\OSDESIGNS\EVM_3530\EVM_3530\RELDIR\TI_EVM_3530_ARMV4I_RELEASE\ILTIMING.EXE'
    7933204 PID:400002 TID:4400026 RET/DEBUG = retail
    7933216 PID:400002 TID:4400026 BUILD DATE = Sep 6 2006 @ (19:32:33)
    7933216 PID:400002 TID:4400026 -------------------------------------------------------------------
    7933216 PID:400002 TID:4400026 COUNTER INFO
    7933216 PID:400002 TID:4400026
    7933216 PID:400002 TID:4400026 Counter Frequency = 32768 Hz
    7933216 PID:400002 TID:4400026 Counter tick interval = 30517 ns
    7933216 PID:400002 TID:4400026 -------------------------------------------------------------------
    7933217 PID:400002 TID:4400026 RUNTIME OPTIONS
    7933217 PID:400002 TID:4400026
    7933217 PID:400002 TID:4400026 Timing interval = 5
    7933217 PID:400002 TID:4400026 Number of interrupts = 10
    7933217 PID:400002 TID:4400026 ===================================================================
    7933217 PID:400002 TID:4400026 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    7933217 PID:400002 TID:4400026 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    7933217 PID:400002 TID:4400026
    7933217 PID:400002 TID:4400026
    7933267 PID:400002 TID:4400026 All times are in microseconds.
    7933267 PID:400002 TID:4400026 Summary:
    7933267 PID:400002 TID:4400026 ISR starts IST starts
    7933267 PID:400002 TID:4400026 min 976.5 0.0
    7933267 PID:400002 TID:4400026 ave 1000.9 6.1
    7933267 PID:400002 TID:4400026 max 1007.0 61.0
    7933267 PID:400002 TID:4400026 Build,Platform,Processor,Project,Debug,Number of Interrupts,ISR Min,ISR Max,ISR Ave,IST Min,IST Max,IST Ave,Thread Priority,Idle Threads
    7933267 PID:400002 TID:4400026 0,EVM3530,ARMV4I,speech,retail,10,976.5,1007.0,1000.9,0.0,61.0,6.1,0,0
    7933268 PID:43a0026 TID:4400026 --ILTiming (Loader): Done!
    7933596 PID:400002 TID:4570026 Exiting secondary ILTIMING process.
    7933596 PID:4550026 TID:4570026 --ILTiming (Loader): Done!

     

     

  • This is definitely a bug inside ILTIMING. When you call "iltiming.exe", it works that way:

    • The iltiming_dll.dll is loaded inside the kernel
    • The main function of the iltiming_dll.dll parses the command line and store parameteres into global variables
    • It then create a new "iltiming.exe" process as a secondary process for the tests
    • This second process reloads the itltiming_dll.dll kernl module, which is actually already loaded inside the kernel
    • It parses the new command line (-z -i0) of the secondary process and stores the values inside the same global variables, overriding the previous ones
    • The parameters are then used only after the scondary thread has exited, leaving the primary thread with wrong paramaters.

    There is not much you can do about it unless you copy and modify the ILTIMING code in your BSP.  If you want to quickly run your tests, change the default value of the

    "uiNumInterrupts"

     variable in the ILTIMING_Main function.

    I checked online but I could not find anyone reporting this issue to Microsoft.

  • Thank you Vijay

    I modified the sourcecode and executed ILTiming with 10000 interrupts.

    ISR starts IST starts
    Min 701.9 0.0
    Max 1281.7 61.0
    Average 999.7 14.9

    Quite disapointing result, isn't it? Between the min and max there is a difference of more than 500us!
    What are the requirements of the CETK Test?

    vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
    ========================================================
                    INTERPRETING THE ILTIMING RESULTS
    -------------------------------------------------------------------
      ILTiming measures the interrupt service routine (ISR) and
      interrupt service thread (IST) latencies.

      ISR latency measured is the time from the physical interrupt
      asserting (timer wrap) to the start of the OEM ISR code.

    -------------------------------------------------------------------
      SYSTEM BUILD INFO

      PLATFORM   = EVM3530
      PROCESSOR  = ARMV4I
      CONFIG     = EVM_3530
      RET/DEBUG  = retail
      BUILD DATE = Nov 30 2010 @ (08:11:14)
    -------------------------------------------------------------------
      COUNTER INFO

      Counter Frequency     = 32768 Hz
      Counter tick interval = 30517 ns
    -------------------------------------------------------------------
      RUNTIME OPTIONS

      Timing interval      = 5
      Number of interrupts = 10000
    ===================================================================
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^


    Discarded 8 timings due to interrupts
    All times are in microseconds.

    Summary:
                        ISR starts   IST starts
    min                      701.9          0.0
    ave                      999.7         14.9
    max                     1281.7         61.0

    Build,Platform,Processor,Project,Debug,Number of Interrupts,ISR Min,ISR Max,ISR Ave,IST Min,IST Max,IST Ave,Thread Priority,Idle Threads
    0,EVM3530,ARMV4I,EVM_3530,retail,10000,701.9,1281.7,999.7,0.0,61.0,14.9,0,0

  • Hello MGun and Vijay,

    I cloned the Iltiming project from public sources to a fodler under PLATFORM on my BSP.

    I built it but found only iltiming_dll.lib was created. No iltiming.exe and iltiming_dll.dll found on the target path.

    I'd like to change the unuminterrupts, so how to generate the iltiming.exe program also ?

    thanks

     

    bye

     

  • Antonio said:

    I'd like to change the unuminterrupts, so how to generate the iltiming.exe program also ?

    I did a sysgen after my code changes and it worked (see results above). Do you receive similar results?

  • Hello MGun,

    I cloned the project Iltiming under my BSP_COMMON folder, 

    I added the RELEASEYPE variable and set it to PLATFORM inside the sources file.

    right clicked on the project icon and selected rebuild. Built ok, no problems.

    Then what to do for sysgening it ? other steps ? Could you please post your modified sources file ?

     

    thank you

     

     

  • MGun,

    the iltiming_dll.lib is successfully created. But how to generate the new iltiming_dll.dll and iltiming.exe?

    I commented out on the sources file the line :

    WINCETARGETFILE0=$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\iltiming_dll.def

    since it resulted in a building error ( .. don't know how to make iltiming_dll.def.. ).

    this is my actual soruces file :

    TARGETTYPE=LIBRARY
    TARGETNAME=iltiming_dll

    WINCEOEM=1
    WINCEPROJ=COMMON
    WINCETREE=winceos
    RELEASETYPE=PLATFORM

    # OS projects during compile always get the full unfiltered headers & build into their own public tree.
    _COMMONPUBROOT=$(_PUBLICROOT)\common
    __PROJROOT = $(_PUBLICROOT)\$(WINCEPROJ)

    WARNISERROR=1

    _ISVINCPATH=$(_WINCEROOT)\public\common\sdk\inc;
    _OEMINCPATH=$(_WINCEROOT)\public\common\oak\inc;$(_WINCEROOT)\public\common\sdk\inc;$(_WINCEROOT)\public\common\ddk\inc



    CDEFINES=-DTGTCPU="\"$(_TGTCPU)\""   \
             -DTGTPROJ="\"$(_TGTPROJ)\"" \
             -DWINCEDEBUG="\"$(WINCEDEBUG)\"" \

    INCLUDES= \
            $(_COMMONOAKROOT)\inc; \

    TARGETDEFNAME=iltiming_dll
    DEFFILE=iltiming_dll.def

    SOURCES= \
            iltiming.c \

    #WINCETARGETFILE0=$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\iltiming_dll.def


    #xref VIGUID {87568d44-ffc7-4bd2-b61b-172e6972c7d5}
    #xref VSGUID {966e23b4-b9c2-4b17-8dd8-56b0c9106cac}

  • I tried also modifying the original code without cloning. On the PUBLIC project I set the uNumInterrupts to 10000, built all the os design, but nothing changed. the interrupts in the output log are always 10. Why ?

  • ok, there are two initializations, one on the declaration point, and the other on the main function. Now it's ok launched for 10000 interrupts and get 2.3 , 2.4, 2.5 us as min, average and max delays. Don't know if they are reliable results at the moment. Another issue is about discarding interrupts, if the system get other interrupts during the measurement it descards the measurement, but I think the real result is to get the real operating case so measure with other interrupts.