|
Zephyr Project API 4.0.0
A Scalable Open Source RTOS
|
Timing Measurement APIs. More...
Modules | |
| Arch specific Timing Measurement APIs | |
| Arch specific Timing Measurement APIs. | |
| Board specific Timing Measurement APIs | |
| Board specific Timing Measurement APIs. | |
| SoC specific Timing Measurement APIs | |
| SoC specific Timing Measurement APIs. | |
Functions | |
| void | timing_init (void) |
| Initialize the timing subsystem. | |
| void | timing_start (void) |
| Signal the start of the timing information gathering. | |
| void | timing_stop (void) |
| Signal the end of the timing information gathering. | |
| static timing_t | timing_counter_get (void) |
| Return timing counter. | |
| static uint64_t | timing_cycles_get (volatile timing_t *const start, volatile timing_t *const end) |
Get number of cycles between start and end. | |
| static uint64_t | timing_freq_get (void) |
| Get frequency of counter used (in Hz). | |
| static uint64_t | timing_cycles_to_ns (uint64_t cycles) |
Convert number of cycles into nanoseconds. | |
| static uint64_t | timing_cycles_to_ns_avg (uint64_t cycles, uint32_t count) |
Convert number of cycles into nanoseconds with averaging. | |
| static uint32_t | timing_freq_get_mhz (void) |
| Get frequency of counter used (in MHz). | |
Timing Measurement APIs.
The timing measurement APIs can be used to obtain execution time of a section of code to aid in analysis and optimization.
Please note that the timing functions may use a different timer than the default kernel timer, where the timer being used is specified by architecture, SoC or board configuration.
|
inlinestatic |
|
inlinestatic |
#include <include/zephyr/timing/timing.h>
Get number of cycles between start and end.
For some architectures or SoCs, the raw numbers from counter need to be scaled to obtain actual number of cycles.
| start | Pointer to counter at start of a measured execution. |
| end | Pointer to counter at stop of a measured execution. |
#include <include/zephyr/timing/timing.h>
Convert number of cycles into nanoseconds.
| cycles | Number of cycles |
#include <include/zephyr/timing/timing.h>
Convert number of cycles into nanoseconds with averaging.
| cycles | Number of cycles |
| count | Times of accumulated cycles to average over |
|
inlinestatic |
#include <include/zephyr/timing/timing.h>
Get frequency of counter used (in Hz).
|
inlinestatic |
#include <include/zephyr/timing/timing.h>
Get frequency of counter used (in MHz).
| void timing_init | ( | void | ) |
#include <include/zephyr/timing/timing.h>
Initialize the timing subsystem.
Perform the necessary steps to initialize the timing subsystem.
| void timing_start | ( | void | ) |
#include <include/zephyr/timing/timing.h>
Signal the start of the timing information gathering.
Signal to the timing subsystem that timing information will be gathered from this point forward.
| void timing_stop | ( | void | ) |
#include <include/zephyr/timing/timing.h>
Signal the end of the timing information gathering.
Signal to the timing subsystem that timing information is no longer being gathered from this point forward.