rtel wrote on Saturday, October 29, 2011:
It really depends on what you want the kernel to be doing while you are in sleep mode.
To keep track of time, and therefore to unblock tasks at the right time, you need to keep the tick interrupt running (see the exception below, about a tickless version of FreeRTOS). That means the tick interrupt will periodically bring the Cortex-M3 out of sleep mode, which can limit the power saving. There are ticks you can do, like reducing the tick frequency by a factor (say 10 for example) then calling the increment tick function 10 times each time the tick brings the CPU out of sleep.
For real power saving, there is a tickless version of FreeRTOS that removes the need for FreeRTOS to periodically wake the CPU up. It requires an external low power crystal (like a watch crystal) to allow even the timers to be turned off. I have provided a link below, which also contains a thesis on the subject.