diff options
author | Dariusz Sabala <dariusz.sabala@creotech.pl> | 2022-10-25 11:11:20 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2022-10-26 11:47:22 +0200 |
commit | 1eae6f24fec6c3ab00d8f5d0152d2a5b57ea4589 (patch) | |
tree | 4c176bcc378f38ca079d1b1d4a64cd89685d1069 /bsps/arm/shared/clock/clock-armv7m.c | |
parent | sptests: Avoid fatal error to end a test (diff) | |
download | rtems-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 '')
-rw-r--r-- | bsps/arm/shared/clock/clock-armv7m.c | 2 |
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; } |