zephyr/subsys/testsuite/include/busy_sim.h

30 lines
1.1 KiB
C

/*
* Copyright (c) 2021 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef BUSY_SIM_H__
#define BUSY_SIM_H__
/**
* @brief Start busy simulator.
*
* When started, it is using counter device to generate interrupts at random
* intervals and busy loop for random period of time in that interrupt. Interrupt
* source and priority is configured in the devicetree. Default entropy source
* is used for getting random numbers. System work queue is used to get random
* values and keep them in a ring buffer.
*
* @param active_avg Avarage time of busy looping in the counter callback (in microseconds).
* @param active_delta Specifies deviation from avarage time of busy looping (in microseconds).
* @param idle_avg Avarage time of counter alarm timeout (in microseconds).
* @param idle_delta Specifies deviation from avarage time of counter alarm (in microseconds).
*/
void busy_sim_start(uint32_t active_avg, uint32_t active_delta,
uint32_t idle_avg, uint32_t idle_delta);
/** @brief Stop busy simulator. */
void busy_sim_stop(void);
#endif /* BUSY_SIM_H__ */