blob: 9a9022203e564d9173f3c3ff5ca01e300cb7b05c [file] [log] [blame]
.. _power-mgr-sample:
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
<https://github.com/quark-mcu/qm-bootloader/releases>`_.
Building and Running
********************
.. code-block:: console
make BOARD=<board>
Sample Output
=============
x86 core output
---------------
.. code-block:: console
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
---------------
.. code-block:: console
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!
...