mirror of https://github.com/ARMmbed/mbed-os.git
MXRT1050_EVK: Sleep: add pre/post processing steps
Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>pull/7753/head
parent
b1166d4696
commit
5d509d2e1e
|
@ -17,23 +17,29 @@
|
||||||
#include "cmsis.h"
|
#include "cmsis.h"
|
||||||
#include "fsl_clock.h"
|
#include "fsl_clock.h"
|
||||||
|
|
||||||
static void stop(void)
|
extern void vPortPRE_SLEEP_PROCESSING(clock_mode_t powermode);
|
||||||
{
|
extern void vPortPOST_SLEEP_PROCESSING(clock_mode_t powermode);
|
||||||
SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk;
|
|
||||||
__asm("WFI");
|
|
||||||
}
|
|
||||||
|
|
||||||
void hal_sleep(void)
|
void hal_sleep(void)
|
||||||
{
|
{
|
||||||
CLOCK_SetMode(kCLOCK_ModeWait);
|
vPortPRE_SLEEP_PROCESSING(kCLOCK_ModeWait);
|
||||||
|
|
||||||
stop();
|
__DSB();
|
||||||
|
__WFI();
|
||||||
|
__ISB();
|
||||||
|
|
||||||
|
vPortPOST_SLEEP_PROCESSING(kCLOCK_ModeWait);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hal_deepsleep(void)
|
void hal_deepsleep(void)
|
||||||
{
|
{
|
||||||
CLOCK_SetMode(kCLOCK_ModeStop);
|
vPortPRE_SLEEP_PROCESSING(kCLOCK_ModeStop);
|
||||||
|
|
||||||
stop();
|
__DSB();
|
||||||
|
__WFI();
|
||||||
|
__ISB();
|
||||||
|
|
||||||
|
vPortPOST_SLEEP_PROCESSING(kCLOCK_ModeStop);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue