73 lines
2.3 KiB
Plaintext
73 lines
2.3 KiB
Plaintext
# 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
|