Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Dynamic Tick Mode is a power-saving feature that was first introduced in μC/OS-III V3.05.00 and later revised in µC/OS-III V3.07.00. If you've read through the section on the clock tick, you should already be familiar with the kernel's behavior when a periodic interrupt is used to keep time. One drawback to that method is that the tick interrupt fires even when no task is ready to wake up. This makes Periodic Tick Mode unsuitable for low power applications since interrupts will usually wake the processor from power-saving modes. Prior to Dynamic Tick's introduction, the only way around this was to disable the tick altogether and design the application without using the timing services. Dynamic tick is a compromise between the two approaches. It gives low power applications the option to utilize timing services, without the drawback of waking the system up periodically.

Requirements

Dynamic Tick requires a hardware timer which features:

  • An up-counting (or down-counting) mode
  • A programmable ceiling (or floor) value which:
    • Generates an interrupt on match
    • Sets a status bit on match
  • A counter that can be read while the timer is running
  • A frequency that is an integer multiple of the OS Tick rate

There are also non-essential timer characteristics which ensure that Dynamic Tick works optimally in your system.

  • The timer frequency should be equal to the OS Tick frequency.
  • The register width of the timer should match the size of the OS_TICK type (32-bit by default).

Dynamic Tick

As demonstrated below, the system behavior changes drastically while using dynamic tick.