# 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