| # SPDX-License-Identifier: Apache-2.0 |
| # Copyright (c) 2022 Intel Corporation |
| |
| mainmenu "Timer Behavior Test" |
| |
| config SYS_CLOCK_TICKS_PER_SEC |
| default 8192 if NRF_RTC_TIMER && TICKLESS_KERNEL |
| |
| source "Kconfig.zephyr" |
| |
| config TIMER_TEST_SAMPLES |
| int "The number of timer samples to gather for statistics" |
| default 1000 if (SRAM_SIZE < 24) |
| default 2000 if (SRAM_SIZE < 32) |
| default 3000 if (SRAM_SIZE < 48) |
| default 5000 if (SRAM_SIZE < 64) |
| default 7000 if (SRAM_SIZE < 96) |
| default 10000 |
| |
| config TIMER_TEST_PERIOD |
| int "The number of microseconds to for the timer period" |
| default 1000 |
| |
| config TIMER_TEST_MAX_STDDEV |
| int "Maximum standard deviation in microseconds allowed" |
| default 10 |
| |
| config TIMER_TEST_MAX_DRIFT |
| int "Maximum drift in microseconds allowed (should be about 1 period allowance)" |
| default 1000 |
| |
| config TIMER_TEST_PERIOD_MAX_DRIFT_PERCENT |
| int "Maximum drift percentage for the timer period" |
| # Use 13% on nRF platforms using the RTC timer because one tick there is |
| # ~122 us (see SYS_CLOCK_TICKS_PER_SEC configuration above) and one tick |
| # difference in the test period is nothing unusual (it can happen for |
| # example if a new tick elapses right after the kernel gets the number |
| # of elapsed ticks when scheduling a new timeout but before the timer |
| # driver sets up that timeout). |
| default 13 if NRF_RTC_TIMER && TICKLESS_KERNEL |
| default 10 |
| help |
| A value of 10 means 10%. |
| |
| config TIMER_EXTERNAL_TEST |
| bool "Perform test using an external tool" |
| help |
| Toggles a GPIO pin, on every period, that can be used by an external |
| tool (such as a logic analyzer) to gather timing data. A pytest harness |
| is used to get the data collected by the tool and evaluate it. |
| |
| if TIMER_EXTERNAL_TEST |
| |
| config TIMER_EXTERNAL_TEST_MAX_DRIFT_PPM |
| int "Maximum drift in PPM for tests using external tool" |
| default 4500 |
| help |
| Parts Per Million of allowed drift when using an external tool |
| connected to a GPIO pin is used to measure time behaviour. |
| |
| config TIMER_EXTERNAL_TEST_PERIOD_MAX_DRIFT_PPM |
| int "Maximum timer period drift in PPM for tests using external tool" |
| default 100000 |
| help |
| Parts Per Million of allowed period drift when using an external tool |
| connected to a GPIO pin is used to measure time behaviour. |
| |
| config TIMER_EXTERNAL_TEST_SYNC_DELAY |
| int "Delay, in seconds, between tests, so that external tool can be ready" |
| default 3 |
| |
| endif # TIMER_EXTERNAL_TEST |