| .. _cpu_load: |
| |
| CPU load |
| ######## |
| |
| Module can be used to track how much time is spent in idle. It is using tracing hooks |
| which are called before and after CPU goes to idle. Compared to :ref:`thread_analyzer` |
| it is more accurate since it takes into account time spent in the interrupt context as well. |
| |
| Function :c:func:`cpu_load_get` is used to get the latest value. It is also used to reset |
| the measurement. By default, module is using :c:func:`k_cycle_get_32` but in cases when higher |
| precision is needed a :ref:`counter_api` device can be used. |
| |
| Load can also be reported periodically using a logging message. Period is configured using :kconfig:option:`CONFIG_CPU_LOAD_LOG_PERIODICALLY`. |
| |
| Using counter device |
| ******************** |
| |
| In order to use :ref:`counter_api` device :kconfig:option:`CONFIG_CPU_LOAD_USE_COUNTER` must be |
| enabled and chosen in devicetree must be set. |
| |
| .. code-block:: devicetree |
| |
| chosen { |
| zephyr,cpu-load-counter = &counter_device; |
| }; |