Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: SPIne CH_Communicatuin_Test CH_Communicatuin_Test2 MCP_SPIne ... more
Fork of mbed-dev-f303 by
Diff: targets/TARGET_STM/sleep.c
- Revision:
- 172:7d866c31b3c5
- Parent:
- 160:d5399cc887bb
--- a/targets/TARGET_STM/sleep.c Wed Aug 16 18:27:13 2017 +0100
+++ b/targets/TARGET_STM/sleep.c Thu Aug 31 17:27:04 2017 +0100
@@ -34,23 +34,32 @@
#include "sleep_api.h"
#include "rtc_api_hal.h"
#include "hal_tick.h"
+#include "mbed_critical.h"
extern void HAL_SuspendTick(void);
extern void HAL_ResumeTick(void);
void hal_sleep(void)
{
+ // Disable IRQs
+ core_util_critical_section_enter();
+
// Stop HAL tick to avoid to exit sleep in 1ms
HAL_SuspendTick();
// Request to enter SLEEP mode
HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON, PWR_SLEEPENTRY_WFI);
-
// Restart HAL tick
HAL_ResumeTick();
+
+ // Enable IRQs
+ core_util_critical_section_exit();
}
void hal_deepsleep(void)
{
+ // Disable IRQs
+ core_util_critical_section_enter();
+
// Stop HAL tick
HAL_SuspendTick();
uint32_t EnterTimeUS = us_ticker_read();
@@ -82,6 +91,9 @@
// Restart HAL tick
HAL_ResumeTick();
+ // Enable IRQs
+ core_util_critical_section_exit();
+
// After wake-up from STOP reconfigure the PLL
SetSysClock();
