What is the fastest tick rate achievable?

yhuangr wrote on Tuesday, May 05, 2009:

I’m using FreeRTOS on an ARM_CM3 (LM3S1968) running at 50MHz. I wonder what would the fastest tick rate achievable be?

If such a rate is faster then 1KHz, what would it take to achieve it beside changing the value of configTICK_RATE_HZ in FreeRTOSConfig.h.

Many thanks,

spacewrench wrote on Tuesday, May 05, 2009:

I’ve been using FreeRTOS on various Luminary procs, and have occasionally run at 1kHz.  You can definitely run them much faster – I just tried 50kHz (with a 50MHz system clock) and it seemed to work OK.  (This was an LM5732 board I built myself, and the app just blinks LEDs and talks out the serial port, but it didn’t do anything unusual.)  Just change configTICK_RATE_HZ and give it a try.


rtel wrote on Tuesday, May 05, 2009:

There is nothing to stop you running the tick faster, but 1KHz is already much faster than most applications need.  The faster the tick the more interrupt and scheduler overhead there is so you are reducing efficiency.

A couple of things to watch out for.

1) prvSetupTimerInterrupt() in port.c may have numerical problems if you change the tick frequency too much.  For example, you may need to adjust the pre-scale on the clock that feeds the timer.

2) portTICK_RATE_MS is a constant used for convenience to convert delay periods from ms to ticks.  The kernel itself does not use this constant although lots of the standard demo tasks do.  Changing the tick rate to be greater than 1KHz could cause problems if portTICK_RATE_MS became equal to zero.


yhuangr wrote on Wednesday, May 06, 2009:

Thanks a lot!