Hi community
I'm not sure if this is really TI-OMAP35xx specific, but the numbers are easier to compare here than in the general WinCE Forum.
I used the GPTimers to measure the time between the interrupt has fired and the IST starts the processing.
Hardware: TI EVM3530
BSP: TI Omap35xx 06.15.00
WinCE started and no additional applications running
Here is what I did:
A) Setup a GPTimer with a period of 10000us (10ms)
B) Create an IST which waits for the event and reads the TCRR register, stores the difference of TCRR and TLDR in a big array in memory and clears the TISR interrupt flag
Below are the result for 10000 interrupts. As you can see the delay varies between 6 and 400us with a quite regular pattern.
The measurement was done twice with different thread priorities (15 and 0).
I also verified the latency with an osciloscope by setting up a GPTimer with 10ms period and toggling a GPIO pin in the IST thread.
Results for 5000 interrupts:
- Mean period: 10.00009534ms
- Minimum period: 9.58805ms
- Maximum period: 10.41973ms
As you can see the average is quite good, since the latency is quite a regular pattern. What is unacceptable is the min / max period time.
Question: What are the values i can expect from WinCE? Did you observe similar behaviour? Where is the problem?
Mike Hall posted an Article about Windows CE 5.0 for real-time systems, there is also a formula to calculate the IST latency:
http://www.embedded-computing.com/pdfs/Microsoft.Nov05.pdf