summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Shawcroft <scott.shawcroft@gmail.com>2017-05-15 20:21:26 -0700
committerScott Shawcroft <scott.shawcroft@gmail.com>2017-05-15 20:21:26 -0700
commitb1925b1bd863d0dedbf40c2f2512fef54ae369e0 (patch)
tree2950401a88bb48eec4e6823f4391095965a98a24
parent3f5028c666008f58785e86dd477065e3ca99d99f (diff)
atmel-samd: Fixup autoreset after switching boot to running once.0.10.0
-rw-r--r--atmel-samd/autoreload.c1
-rw-r--r--atmel-samd/bindings/samd/__init__.c4
-rw-r--r--atmel-samd/main.c17
-rw-r--r--atmel-samd/mphalport.c3
4 files changed, 15 insertions, 10 deletions
diff --git a/atmel-samd/autoreload.c b/atmel-samd/autoreload.c
index 5d1a512ed..b2c9d61a7 100644
--- a/atmel-samd/autoreload.c
+++ b/atmel-samd/autoreload.c
@@ -64,4 +64,5 @@ void autoreload_start() {
void autoreload_stop() {
autoreload_delay_ms = 0;
+ reload_next_character = false;
}
diff --git a/atmel-samd/bindings/samd/__init__.c b/atmel-samd/bindings/samd/__init__.c
index 83c069eca..e834d0500 100644
--- a/atmel-samd/bindings/samd/__init__.c
+++ b/atmel-samd/bindings/samd/__init__.c
@@ -47,8 +47,8 @@ MP_DEFINE_CONST_FUN_OBJ_0(samd_enable_autoreload_obj, samd_enable_autoreload);
//| .. method:: disable_autoreload()
//|
-//| Disable autoreload based on USB file write activity until the next reload
-//| or until `enable_autoreload` is called.
+//| Disable autoreload based on USB file write activity until
+//| `enable_autoreload` is called.
//|
STATIC mp_obj_t samd_disable_autoreload(void) {
autoreload_disable();
diff --git a/atmel-samd/main.c b/atmel-samd/main.c
index 370e29a4f..a1ccf0e3c 100644
--- a/atmel-samd/main.c
+++ b/atmel-samd/main.c
@@ -118,7 +118,6 @@ void reset_mp(void) {
reset_status_led();
new_status_color(0x8f008f);
autoreload_stop();
- autoreload_enable();
// Sync the file systems in case any used RAM from the GC to cache. As soon
// as we re-init the GC all bets are off on the cache.
@@ -249,6 +248,8 @@ bool start_mp(safe_mode_t safe_mode) {
mp_hal_stdout_tx_str("Auto-reload is on. Simply save files over USB to run them or enter REPL to disable.\r\n");
} else if (safe_mode != NO_SAFE_MODE) {
mp_hal_stdout_tx_str("Running in safe mode! Auto-reload is off.\r\n");
+ } else if (!autoreload_is_enabled()) {
+ mp_hal_stdout_tx_str("Auto-reload is off.\r\n");
}
}
#endif
@@ -320,10 +321,12 @@ bool start_mp(safe_mode_t safe_mode) {
mp_hal_stdout_tx_str("\r\n\r\n");
}
- if (!cdc_enabled_at_start && autoreload_is_enabled()) {
- mp_hal_stdout_tx_str("Auto-reload is on. Simply save files over USB to run them or enter REPL to disable.\r\n");
- } else {
- mp_hal_stdout_tx_str("Auto-reload is off.\r\n");
+ if (!cdc_enabled_at_start) {
+ if (autoreload_is_enabled()) {
+ mp_hal_stdout_tx_str("Auto-reload is on. Simply save files over USB to run them or enter REPL to disable.\r\n");
+ } else {
+ mp_hal_stdout_tx_str("Auto-reload is off.\r\n");
+ }
}
if (safe_mode != NO_SAFE_MODE) {
mp_hal_stdout_tx_str("\r\nYou are running in safe mode which means something really bad happened.\r\n");
@@ -618,6 +621,7 @@ int main(void) {
for (;;) {
if (!skip_repl) {
// The REPL mode can change, or it can request a reload.
+ bool autoreload_on = autoreload_is_enabled();
autoreload_disable();
new_status_color(REPL_RUNNING);
if (pyexec_mode_kind == PYEXEC_MODE_RAW_REPL) {
@@ -625,6 +629,9 @@ int main(void) {
} else {
exit_code = pyexec_friendly_repl();
}
+ if (autoreload_on) {
+ autoreload_enable();
+ }
reset_samd21();
reset_mp();
}
diff --git a/atmel-samd/mphalport.c b/atmel-samd/mphalport.c
index 8d5e98ca3..ed64c5529 100644
--- a/atmel-samd/mphalport.c
+++ b/atmel-samd/mphalport.c
@@ -131,9 +131,6 @@ int receive_usb(void) {
return 0;
}
- // Disable autoreload if someone is using the repl.
- autoreload_disable();
-
// Copy from head.
cpu_irq_disable();
int data = usb_rx_buf[usb_rx_buf_head];