From b7682183b8218ff3de7427ec20b057cd08c9d70e Mon Sep 17 00:00:00 2001 From: Martin Kojtal <0xc0170@gmail.com> Date: Fri, 8 Sep 2017 11:56:41 +0100 Subject: [PATCH] Sleep: add time requirements for sleep Sleep - within 10us Deepsleep - within 10ms Note about mbed boards with interface, moved to lpc176x, as they are target related, should be documented in the target documentation. The tests will come as separate PR, to conform to this updates to sleep API. --- hal/sleep_api.h | 19 +++++++------------ targets/TARGET_NXP/TARGET_LPC176X/sleep.c | 7 +++++++ 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/hal/sleep_api.h b/hal/sleep_api.h index 8747459cb9..aae204f6c6 100644 --- a/hal/sleep_api.h +++ b/hal/sleep_api.h @@ -29,32 +29,27 @@ extern "C" { /** Send the microcontroller to sleep * - * The processor is setup ready for sleep, and sent to sleep using __WFI(). In this mode, the + * The processor is setup ready for sleep, and sent to sleep. In this mode, the * system clock to the core is stopped until a reset or an interrupt occurs. This eliminates * dynamic power used by the processor, memory systems and buses. The processor, peripheral and * memory state are maintained, and the peripherals continue to work and can generate interrupts. * * The processor can be woken up by any internal peripheral interrupt or external pin interrupt. * - * @note - * The mbed interface semihosting is disconnected as part of going to sleep, and can not be restored. - * Flash re-programming and the USB serial port will remain active, but the mbed program will no longer be - * able to access the LocalFileSystem + * The wake-up time shall be less than 10 us. + * */ void hal_sleep(void); /** Send the microcontroller to deep sleep * * 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 - * is still maintained. + * has the same sleep features as sleep plus it powers down peripherals and high frequency clocks. + * All state is still maintained. * - * The processor can only be woken up by an external interrupt on a pin or a watchdog timer. + * The processor can only be woken up by low power ticker, RTC, an external interrupt on a pin or a watchdog timer. * - * @note - * The mbed interface semihosting is disconnected as part of going to sleep, and can not be restored. - * Flash re-programming and the USB serial port will remain active, but the mbed program will no longer be - * able to access the LocalFileSystem + * The wake-up time shall be less than 10 ms. */ void hal_deepsleep(void); diff --git a/targets/TARGET_NXP/TARGET_LPC176X/sleep.c b/targets/TARGET_NXP/TARGET_LPC176X/sleep.c index c9f6ad4145..22127e0728 100644 --- a/targets/TARGET_NXP/TARGET_LPC176X/sleep.c +++ b/targets/TARGET_NXP/TARGET_LPC176X/sleep.c @@ -17,6 +17,13 @@ #include "cmsis.h" #include "mbed_interface.h" +/* + * @note + * The mbed interface semihosting is disconnected as part of going to sleep, and can not be restored. + * Flash re-programming and the USB serial port will remain active, but the mbed program will no longer be + * able to access the LocalFileSystem + */ + void hal_sleep(void) { #if (DEVICE_SEMIHOST == 1)