From c5f0ad506e2f59cee108ed67328fa365eb3ec039 Mon Sep 17 00:00:00 2001 From: Bartek Szatkowski Date: Wed, 5 Apr 2017 15:33:31 +0100 Subject: [PATCH] Disable sleep when uVisor is in use --- platform/mbed_sleep.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/platform/mbed_sleep.h b/platform/mbed_sleep.h index 9d1e9556ff..91546259da 100644 --- a/platform/mbed_sleep.h +++ b/platform/mbed_sleep.h @@ -28,7 +28,8 @@ extern "C" { /** Send the microcontroller to sleep * * @note This function can be a noop if not implemented by the platform. - * @note This function will be a noop in debug mode (debug build profile when MBED_DEBUG is defined) + * @note This function will be a noop in debug mode (debug build profile when MBED_DEBUG is defined). + * @note This function will be a noop while uVisor is in use. * * The processor is setup ready for sleep, and sent to sleep using __WFI(). In this mode, the * system clock to the core is stopped until a reset or an interrupt occurs. This eliminates @@ -44,17 +45,20 @@ extern "C" { */ __INLINE static void sleep(void) { +#if !(defined(FEATURE_UVISOR) && defined(TARGET_UVISOR_SUPPORTED)) #ifndef MBED_DEBUG #if DEVICE_SLEEP hal_sleep(); #endif /* DEVICE_SLEEP */ #endif /* MBED_DEBUG */ +#endif /* !(defined(FEATURE_UVISOR) && defined(TARGET_UVISOR_SUPPORTED)) */ } /** Send the microcontroller to deep sleep * * @note This function can be a noop if not implemented by the platform. * @note This function will be a noop in debug mode (debug build profile when MBED_DEBUG is defined) + * @note This function will be a noop while uVisor is in use. * * This processor is setup ready for deep sleep, and sent to sleep using __WFI(). This mode * has the same sleep features as sleep plus it powers down peripherals and clocks. All state @@ -69,11 +73,13 @@ __INLINE static void sleep(void) */ __INLINE static void deepsleep(void) { +#if !(defined(FEATURE_UVISOR) && defined(TARGET_UVISOR_SUPPORTED)) #ifndef MBED_DEBUG #if DEVICE_SLEEP hal_deepsleep(); #endif /* DEVICE_SLEEP */ #endif /* MBED_DEBUG */ +#endif /* !(defined(FEATURE_UVISOR) && defined(TARGET_UVISOR_SUPPORTED)) */ } #ifdef __cplusplus