Power management demo

Overview

A sample implementation of a power manager app that uses the Zephyr power management infrastructure.

This app will cycle through the various power schemes at every call to _sys_soc_suspend() hook function. It will cycle through the following states:

  1. CPU Low Power State
  2. Deep Sleep - demonstrates invoking suspend/resume handlers of devices to save device states and switching to deep sleep state.
  3. No-op - no operation and letting kernel do its idle

Requirements

This application uses Intel Quark SE Microcontroller C1000 board for the demo. It demonstrates power operations on the x86 and ARC cores in the board.

Note

PM support on Intel Quark SE Microcontroller C1000 board requires the latest version of the boot loader.

Building and Running

make BOARD=<board>

Sample Output

x86 core output

Power Management Demo on x86

Application main thread

Low power state entry!

Low power state exit!
Total Elapsed From Suspend To Resume = 131073 RTC Cycles
Wake up event handler

Application main thread

Deep sleep entry!
Wake from Deep Sleep!

Deep sleep exit!
Total Elapsed From Suspend To Resume = 291542 RTC Cycles
Wake up event handler

Application main thread

No PM operations done

Application main thread

Low power state entry!

Low power state exit!

...

ARC core output

Power Management Demo on arc

Application main thread

Low power state entry!

Low power state exit!
Total Elapsed From Suspend To Resume = 131073 RTC Cycles
Wake up event handler

Application main thread

No PM operations done

Application main thread

Low power state entry!

Low power state exit!

...