diff options
| author | Scott Shawcroft <scott@adafruit.com> | 2020-12-02 12:51:43 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-12-02 12:51:43 -0800 |
| commit | d7ba641ff646b48e5ad38ff72a2dcfe17bb54624 (patch) | |
| tree | a0c4f9fb561b2caa38636645ca27f0ddad59f087 /supervisor/shared/safe_mode.c | |
| parent | 5b3c930e384ef6440f0f7b5167bb54ea68a8be76 (diff) | |
| parent | 72fa7d88b881d2ed9978c0bd65ce5f8d6eb51703 (diff) | |
Merge pull request #3767 from dhalbert/sleep
Initial alarm and sleep PR: time alarms with light and deep sleep; PinAlarms not yet implemented
Diffstat (limited to 'supervisor/shared/safe_mode.c')
| -rw-r--r-- | supervisor/shared/safe_mode.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/supervisor/shared/safe_mode.c b/supervisor/shared/safe_mode.c index d59e754ed..9032e4045 100644 --- a/supervisor/shared/safe_mode.c +++ b/supervisor/shared/safe_mode.c @@ -29,6 +29,8 @@ #include "mphalport.h" #include "shared-bindings/digitalio/DigitalInOut.h" +#include "shared-bindings/microcontroller/Processor.h" +#include "shared-bindings/microcontroller/ResetReason.h" #include "supervisor/serial.h" #include "supervisor/shared/rgb_led_colors.h" @@ -52,6 +54,12 @@ safe_mode_t wait_for_safe_mode_reset(void) { current_safe_mode = safe_mode; return safe_mode; } + + const mcu_reset_reason_t reset_reason = common_hal_mcu_processor_get_reset_reason(); + if (reset_reason != RESET_REASON_POWER_ON && + reset_reason != RESET_REASON_RESET_PIN) { + return NO_SAFE_MODE; + } port_set_saved_word(SAFE_MODE_DATA_GUARD | (MANUAL_SAFE_MODE << 8)); // Wait for a while to allow for reset. temp_status_color(SAFE_MODE); |
