summaryrefslogtreecommitdiffstats
path: root/bsps/arm
diff options
context:
space:
mode:
authorDariusz Sabala <dariusz.sabala@creotech.pl>2022-10-25 11:11:20 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2022-10-26 11:47:22 +0200
commit1eae6f24fec6c3ab00d8f5d0152d2a5b57ea4589 (patch)
tree4c176bcc378f38ca079d1b1d4a64cd89685d1069 /bsps/arm
parentsptests: Avoid fatal error to end a test (diff)
downloadrtems-1eae6f24fec6c3ab00d8f5d0152d2a5b57ea4589.tar.bz2
bsps/arm: fix Cortex-M7 systick reload value
- see ARM DUI 0646C Arm Cortex-M7 Devices Generic User Guide "The RELOAD value is calculated according to its use. For example, to generate a multi-shot timer with a period of N processor clock cycles, use a RELOAD value of N-1. If the SysTick interrupt is required every 100 clock pulses, set RELOAD to 99." - see routines used in CMSIS project for reference Close #4746.
Diffstat (limited to 'bsps/arm')
-rw-r--r--bsps/arm/shared/clock/clock-armv7m.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/bsps/arm/shared/clock/clock-armv7m.c b/bsps/arm/shared/clock/clock-armv7m.c
index 255de1ca42..c870684980 100644
--- a/bsps/arm/shared/clock/clock-armv7m.c
+++ b/bsps/arm/shared/clock/clock-armv7m.c
@@ -90,7 +90,7 @@ static void _ARMV7M_Clock_initialize_early(void)
interval = (uint32_t) ((freq * us_per_tick) / 1000000);
- systick->rvr = interval;
+ systick->rvr = interval - 1;
systick->cvr = 0;
systick->csr = ARMV7M_SYSTICK_CSR_ENABLE | ARMV7M_SYSTICK_CSR_CLKSOURCE;
}