File tree Expand file tree Collapse file tree 2 files changed +19
-7
lines changed
ports/nrf/common-hal/alarm Expand file tree Collapse file tree 2 files changed +19
-7
lines changed Original file line number Diff line number Diff line change @@ -404,10 +404,10 @@ STATIC bool run_code_py(safe_mode_t safe_mode) {
404
404
new_status_color (BLACK );
405
405
board_deinit ();
406
406
if (!supervisor_workflow_active ()) {
407
- // Enter true deep sleep. When we wake up we'll be back at the
408
- // top of main(), not in this loop.
407
+ // Enter deep sleep. When we wake up we'll return from
408
+ // this loop.
409
409
common_hal_alarm_enter_deep_sleep ();
410
- // Does not return.
410
+ // Does not return.
411
411
} else {
412
412
serial_write_compressed (translate ("Pretending to deep sleep until alarm, CTRL-C or file write.\n" ));
413
413
}
@@ -426,10 +426,21 @@ STATIC bool run_code_py(safe_mode_t safe_mode) {
426
426
427
427
#if CIRCUITPY_ALARM
428
428
common_hal_alarm_pretending_deep_sleep ();
429
+ bool serial_in = (serial_connected () &&
430
+ serial_bytes_available ());
431
+ supervisor_set_run_reason (RUN_REASON_STARTUP );
432
+ board_init ();
433
+ if (serial_in ) {
434
+ bool ctrl_d = serial_read () == CHAR_CTRL_D ;
435
+ if (ctrl_d ) {
436
+ supervisor_set_run_reason (RUN_REASON_REPL_RELOAD );
437
+ }
438
+ return ctrl_d ;
439
+ }
440
+ return true;
429
441
#else
430
442
port_idle_until_interrupt ();
431
443
#endif
432
- //return false; // to go REPL
433
444
}
434
445
}
435
446
}
Original file line number Diff line number Diff line change @@ -346,7 +346,7 @@ void NORETURN common_hal_alarm_enter_deep_sleep(void) {
346
346
while (1 ) ;
347
347
}
348
348
349
- // old version deep sleep code that was used in alarm_enter_deep_sleep ()
349
+ // old version deep sleep code that was used in common_hal_alarm_enter_deep_sleep ()
350
350
// for anyone who might want true System OFF sleep ..
351
351
#if 0
352
352
void OLD_go_system_off (void ) {
@@ -384,16 +384,17 @@ void common_hal_alarm_pretending_deep_sleep(void) {
384
384
385
385
alarm_reset ();
386
386
387
+ #if 0
387
388
// if one of Alarm event occurred, reset myself
388
389
if (cause == NRF_SLEEP_WAKEUP_GPIO ||
389
390
cause == NRF_SLEEP_WAKEUP_TIMER ||
390
391
cause == NRF_SLEEP_WAKEUP_TOUCHPAD ) {
391
392
reset_cpu ();
392
393
}
393
394
// else, just return and go into REPL
395
+ #endif
394
396
}
395
397
396
398
void common_hal_alarm_gc_collect (void ) {
397
- void * p = shared_alarm_get_wake_alarm ();
398
- gc_collect_ptr (p );
399
+ gc_collect_ptr (shared_alarm_get_wake_alarm ());
399
400
}
You can’t perform that action at this time.
0 commit comments