summaryrefslogtreecommitdiff
path: root/ports/nrf/peripherals
diff options
context:
space:
mode:
authorScott Shawcroft <scott@tannewt.org>2018-12-06 14:24:20 -0800
committerScott Shawcroft <scott@tannewt.org>2018-12-06 14:24:20 -0800
commit6ef863997186e1893cdf19c0e04d0a8a3f33ad9d (patch)
tree461360ed76e39ca0a534a0dee040fc1cf6848d70 /ports/nrf/peripherals
parent7ad2e6ace34a6d417ec1b84472fa409d5451137b (diff)
Rework safe mode and have heap overwrite trigger it.
This creates a common safe mode mechanic that ports can share. As a result, the nRF52 now has safe mode support as well. The common safe mode adds a 700ms delay at startup where a reset during that window will cause a reset into safe mode. This window is designated by a yellow status pixel and flashing the single led three times. A couple NeoPixel fixes are included for the nRF52 as well. Fixes #1034. Fixes #990. Fixes #615.
Diffstat (limited to 'ports/nrf/peripherals')
-rw-r--r--ports/nrf/peripherals/nrf/clocks.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/ports/nrf/peripherals/nrf/clocks.c b/ports/nrf/peripherals/nrf/clocks.c
index 811c0161a..4acb878db 100644
--- a/ports/nrf/peripherals/nrf/clocks.c
+++ b/ports/nrf/peripherals/nrf/clocks.c
@@ -32,4 +32,7 @@ void nrf_peripherals_clocks_init(void) {
// generalized.
NRF_CLOCK->LFCLKSRC = (uint32_t)((CLOCK_LFCLKSRC_SRC_Xtal << CLOCK_LFCLKSRC_SRC_Pos) & CLOCK_LFCLKSRC_SRC_Msk);
NRF_CLOCK->TASKS_LFCLKSTART = 1UL;
+
+ // Wait for clocks to start.
+ while (NRF_CLOCK->EVENTS_LFCLKSTARTED == 0) {}
}