[rtems commit] bsps/arm: Optimize ARMv7-M CPU counter
Sebastian Huber
sebh at rtems.org
Tue Apr 9 06:11:37 UTC 2019
Module: rtems
Branch: master
Commit: 222570a61b3a75635e47708f8b530fb6bc988cf6
Changeset: http://git.rtems.org/rtems/commit/?id=222570a61b3a75635e47708f8b530fb6bc988cf6
Author: Sebastian Huber <sebastian.huber at embedded-brains.de>
Date: Tue Apr 9 08:06:01 2019 +0200
bsps/arm: Optimize ARMv7-M CPU counter
Update #3456.
---
bsps/arm/include/bsp/clock-armv7m.h | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/bsps/arm/include/bsp/clock-armv7m.h b/bsps/arm/include/bsp/clock-armv7m.h
index c570153..3175027 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;
More information about the vc
mailing list