From 9f12e55340f79a154209dce538bf1fd17ec8ea7c Mon Sep 17 00:00:00 2001 From: Lingkai Dong Date: Mon, 13 May 2019 15:21:58 +0100 Subject: [PATCH] SysTimer: default to us ticker if lp ticker is unavailable --- rtos/TARGET_CORTEX/SysTimer.cpp | 14 +++++++++++--- rtos/TARGET_CORTEX/SysTimer.h | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/rtos/TARGET_CORTEX/SysTimer.cpp b/rtos/TARGET_CORTEX/SysTimer.cpp index e1c6bb6b23..c58763d451 100644 --- a/rtos/TARGET_CORTEX/SysTimer.cpp +++ b/rtos/TARGET_CORTEX/SysTimer.cpp @@ -21,8 +21,9 @@ */ #include "rtos/TARGET_CORTEX/SysTimer.h" -#if DEVICE_LPTICKER +#if MBED_TICKLESS +#include "hal/us_ticker_api.h" #include "hal/lp_ticker_api.h" #include "mbed_critical.h" #include "mbed_assert.h" @@ -58,7 +59,12 @@ namespace rtos { namespace internal { SysTimer::SysTimer() : - TimerEvent(get_lp_ticker_data()), _time_us(0), _tick(0) +#if DEVICE_LPTICKER + TimerEvent(get_lp_ticker_data()), +#else + TimerEvent(get_us_ticker_data()), +#endif + _time_us(0), _tick(0) { _time_us = ticker_read_us(_ticker_data); _suspend_time_passed = true; @@ -69,6 +75,8 @@ SysTimer::SysTimer(const ticker_data_t *data) : TimerEvent(data), _time_us(0), _tick(0) { _time_us = ticker_read_us(_ticker_data); + _suspend_time_passed = true; + _suspended = false; } void SysTimer::setup_irq() @@ -194,4 +202,4 @@ void SysTimer::handler() } } -#endif +#endif // MBED_TICKLESS diff --git a/rtos/TARGET_CORTEX/SysTimer.h b/rtos/TARGET_CORTEX/SysTimer.h index 68b6eec891..653ffbe895 100644 --- a/rtos/TARGET_CORTEX/SysTimer.h +++ b/rtos/TARGET_CORTEX/SysTimer.h @@ -22,7 +22,7 @@ #ifndef MBED_SYS_TIMER_H #define MBED_SYS_TIMER_H -#if DEVICE_LPTICKER || defined(DOXYGEN_ONLY) +#if MBED_TICKLESS || defined(DOXYGEN_ONLY) #include "platform/NonCopyable.h" #include "drivers/TimerEvent.h"