Skip to content

Commit 74c96b6

Browse files
committed
MXRT1050_EVK: Sleep: add pre/post processing steps
Signed-off-by: Mahesh Mahadevan <[email protected]>
1 parent e18e0f1 commit 74c96b6

File tree

1 file changed

+15
-9
lines changed
  • targets/TARGET_NXP/TARGET_MCUXpresso_MCUS/TARGET_IMX

1 file changed

+15
-9
lines changed

targets/TARGET_NXP/TARGET_MCUXpresso_MCUS/TARGET_IMX/sleep.c

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,23 +17,29 @@
1717
#include "cmsis.h"
1818
#include "fsl_clock.h"
1919

20-
static void stop(void)
21-
{
22-
SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk;
23-
__asm("WFI");
24-
}
20+
extern void vPortPRE_SLEEP_PROCESSING(clock_mode_t powermode);
21+
extern void vPortPOST_SLEEP_PROCESSING(clock_mode_t powermode);
22+
2523

2624
void hal_sleep(void)
2725
{
28-
CLOCK_SetMode(kCLOCK_ModeWait);
26+
vPortPRE_SLEEP_PROCESSING(kCLOCK_ModeWait);
2927

30-
stop();
28+
__DSB();
29+
__WFI();
30+
__ISB();
31+
32+
vPortPOST_SLEEP_PROCESSING(kCLOCK_ModeWait);
3133
}
3234

3335
void hal_deepsleep(void)
3436
{
35-
CLOCK_SetMode(kCLOCK_ModeStop);
37+
vPortPRE_SLEEP_PROCESSING(kCLOCK_ModeStop);
38+
39+
__DSB();
40+
__WFI();
41+
__ISB();
3642

37-
stop();
43+
vPortPOST_SLEEP_PROCESSING(kCLOCK_ModeStop);
3844
}
3945

0 commit comments

Comments
 (0)