Skip to content

Commit

Permalink
atmel-samd: Fixup autoreset after switching boot to running once.
Browse files Browse the repository at this point in the history
  • Loading branch information
tannewt committed May 16, 2017
1 parent 3f5028c commit b1925b1
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 10 deletions.
1 change: 1 addition & 0 deletions atmel-samd/autoreload.c
Original file line number Diff line number Diff line change
Expand Up @@ -64,4 +64,5 @@ void autoreload_start() {

void autoreload_stop() {
autoreload_delay_ms = 0;
reload_next_character = false;
}
4 changes: 2 additions & 2 deletions atmel-samd/bindings/samd/__init__.c
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
17 changes: 12 additions & 5 deletions atmel-samd/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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");
Expand Down Expand Up @@ -618,13 +621,17 @@ 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) {
exit_code = pyexec_raw_repl();
} else {
exit_code = pyexec_friendly_repl();
}
if (autoreload_on) {
autoreload_enable();
}
reset_samd21();
reset_mp();
}
Expand Down
3 changes: 0 additions & 3 deletions atmel-samd/mphalport.c
Original file line number Diff line number Diff line change
Expand Up @@ -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];
Expand Down

0 comments on commit b1925b1

Please sign in to comment.