summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nuttx/configs/stm3210e-eval/src/up_idle.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/nuttx/configs/stm3210e-eval/src/up_idle.c b/nuttx/configs/stm3210e-eval/src/up_idle.c
index 13c88ee808..5b9f3c9fae 100644
--- a/nuttx/configs/stm3210e-eval/src/up_idle.c
+++ b/nuttx/configs/stm3210e-eval/src/up_idle.c
@@ -39,17 +39,19 @@
* Included Files
****************************************************************************/
-#include <arch/board/board.h>
#include <nuttx/config.h>
+#include <debug.h>
+
#include <nuttx/arch.h>
#include <nuttx/clock.h>
#include <nuttx/power/pm.h>
-
-#include <debug.h>
#include <nuttx/rtc.h>
+
#include <arch/irq.h>
+#include <arch/board/board.h>
+
#include "up_internal.h"
#include "stm32_pm.h"
#include "stm32_rcc.h"
@@ -288,7 +290,18 @@ static void up_idlepm(void)
if (oldstate == PM_STANDBY)
{
+ /* Re-enable clocking */
+
stm32_clockenable();
+
+ /* The system timer was disabled while in PM_STANDBY or
+ * PM_SLEEP modes. But the RTC has still be running: Reset
+ * the system time the current RTC time.
+ */
+
+#ifdef CONFIG_RTC
+ clock_synchronize();
+#endif
}
}
break;