diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2019-04-09 08:06:01 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2019-04-09 08:06:46 +0200 |
commit | 222570a61b3a75635e47708f8b530fb6bc988cf6 (patch) | |
tree | b4e6679f3158a8a88289b9f65cccf50e5aa5dbe2 /bsps | |
parent | Remove superfluous run-time check (diff) | |
download | rtems-222570a61b3a75635e47708f8b530fb6bc988cf6.tar.bz2 |
bsps/arm: Optimize ARMv7-M CPU counter
Update #3456.
Diffstat (limited to 'bsps')
-rw-r--r-- | bsps/arm/include/bsp/clock-armv7m.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/bsps/arm/include/bsp/clock-armv7m.h b/bsps/arm/include/bsp/clock-armv7m.h index c570153c33..317502734e 100644 --- a/bsps/arm/include/bsp/clock-armv7m.h +++ b/bsps/arm/include/bsp/clock-armv7m.h @@ -50,15 +50,16 @@ static uint32_t _ARMV7M_Clock_counter(ARMV7M_Timecounter *tc) uint32_t interval; uint32_t counter; uint32_t ticks; - - systick = _ARMV7M_Systick; - interval = systick->rvr; + uint32_t csr; rtems_interrupt_disable(level); + systick = _ARMV7M_Systick; counter = systick->cvr; + csr = systick->csr; + interval = systick->rvr; ticks = tc->ticks; - if ((systick->csr & ARMV7M_SYSTICK_CSR_COUNTFLAG) != 0) { + if (RTEMS_PREDICT_FALSE((csr & ARMV7M_SYSTICK_CSR_COUNTFLAG) != 0)) { counter = systick->cvr; ticks += interval; tc->ticks = ticks; |