I was reviewing the WinCE Comparative Benchmarks, specifically on the OSBench results for AM335x CE7. And noticed that it's Inter and Intra Process Semaphore Signalling ranged from 5.28 us to 8.9 us under the 24000 KHz counter freq.
Does this mean that I can't get to less than 1 us accuracy if my DLL would interact with other drivers?
In my current design, I created a Timer Driver DLL which I want to fire interrupts when it reaches OVERFLOW. Once my thread receives that interrupt, it will set the a GPIO through the GPIO driver and set a new timer value and waits for another OVERFLOW interrupt to turn CLEAR that GPIO pin. I wanted to do this with less 1 us accuracy since AM335x have clocks that could get this done even with nanosecond accuracy.
However, what I see is that with my current implementation I could only get 13us accuracy. 13 us is the shortest interval I could get doing this.
Is there too much OS overload here? I'm already using GPIO driver callback via IOCTL_DDK_GET_DRIVER_IFC to minimized overheads. But 13 us is still the lowest I could see here. Do I need to configure any specific register to properly route the High Speed clock to the respective GPIO control?
Any thoughts would be appreciated. Thank you.