aboutsummaryrefslogtreecommitdiff
path: root/ports
diff options
context:
space:
mode:
authorDan Halbert <halbert@halwitz.org>2017-10-27 17:14:57 -0400
committerDan Halbert <halbert@halwitz.org>2017-10-27 17:32:13 -0400
commit7f88ba3b2642c5b326b3df1821a055ef47e95c3a (patch)
tree70c5294af5566554b09dca171f67b123357608c5 /ports
parent2487226dff08ba3ec75019a10374eda07fc1a50d (diff)
Revert "Allow main.py to be interrupted by ctrl-C" (#381)
* Revert "Read serial input as a background task so we can check for the interrupt character." This reverts commit 046092e8a29822ae5d761fbaac1a3af181b1297c. * Revert "Check INTERNAL_LIBM make flag in a safer way." This reverts commit 2b80add22f5d22544d8362c19d4332a489325ac9.
Diffstat (limited to 'ports')
-rw-r--r--ports/atmel-samd/Makefile8
-rw-r--r--ports/atmel-samd/background.c2
-rw-r--r--ports/atmel-samd/mpconfigport.mk2
-rw-r--r--ports/atmel-samd/usb.c27
-rw-r--r--ports/atmel-samd/usb.h1
5 files changed, 13 insertions, 27 deletions
diff --git a/ports/atmel-samd/Makefile b/ports/atmel-samd/Makefile
index ef168dbc9..f9751415a 100644
--- a/ports/atmel-samd/Makefile
+++ b/ports/atmel-samd/Makefile
@@ -238,10 +238,10 @@ SRC_C = \
# Choose which flash filesystem impl to use.
# (Right now INTERNAL_FLASH_FILESYSTEM and SPI_FLASH_FILESYSTEM are mutually exclusive.
# But that might not be true in the future.)
-ifeq ($(INTERNAL_FLASH_FILESYSTEM),1)
+ifdef INTERNAL_FLASH_FILESYSTEM
SRC_C += internal_flash.c
endif
-ifeq ($(SPI_FLASH_FILESYSTEM),1)
+ifdef SPI_FLASH_FILESYSTEM
SRC_C += spi_flash.c
endif
@@ -278,7 +278,7 @@ SRC_COMMON_HAL = \
usb_hid/__init__.c \
usb_hid/Device.c
-ifeq ($(INTERNAL_LIBM),1)
+ifdef INTERNAL_LIBM
SRC_LIBM = $(addprefix lib/,\
libm/math.c \
libm/fmodf.c \
@@ -338,7 +338,7 @@ OBJ = $(PY_O) $(SUPERVISOR_O) $(addprefix $(BUILD)/, $(SRC_C:.c=.o))
OBJ += $(addprefix $(BUILD)/, $(SRC_ASF:.c=.o))
OBJ += $(addprefix $(BUILD)/, $(SRC_COMMON_HAL_EXPANDED:.c=.o))
OBJ += $(addprefix $(BUILD)/, $(SRC_SHARED_MODULE_EXPANDED:.c=.o))
-ifeq ($(INTERNAL_LIBM),1)
+ifdef INTERNAL_LIBM
OBJ += $(addprefix $(BUILD)/, $(SRC_LIBM:.c=.o))
endif
diff --git a/ports/atmel-samd/background.c b/ports/atmel-samd/background.c
index 2fdf05982..6515e448b 100644
--- a/ports/atmel-samd/background.c
+++ b/ports/atmel-samd/background.c
@@ -26,11 +26,9 @@
#include "background.h"
// #include "common-hal/audioio/AudioOut.h"
-#include "usb.h"
#include "usb_mass_storage.h"
void run_background_tasks(void) {
// audioout_background();
usb_msc_background();
- usb_cdc_background();
}
diff --git a/ports/atmel-samd/mpconfigport.mk b/ports/atmel-samd/mpconfigport.mk
index c3b2f22d4..acb0916fc 100644
--- a/ports/atmel-samd/mpconfigport.mk
+++ b/ports/atmel-samd/mpconfigport.mk
@@ -3,5 +3,5 @@
# This should correspond to the MICROPY_LONGINT_IMPL definition in mpconfigport.h.
MPY_TOOL_LONGINT_IMPL = -mlongint-impl=none
-INTERNAL_LIBM = 1
+INTERNAL_LIBM = (1)
diff --git a/ports/atmel-samd/usb.c b/ports/atmel-samd/usb.c
index bd712a5d2..e0b9ddc41 100644
--- a/ports/atmel-samd/usb.c
+++ b/ports/atmel-samd/usb.c
@@ -56,13 +56,13 @@
static uint8_t usb_rx_buf[USB_RX_BUF_SIZE];
// Receive buffer head
-static volatile uint8_t usb_rx_buf_head = 0;
+static volatile uint8_t usb_rx_buf_head;
// Receive buffer tail
-static volatile uint8_t usb_rx_buf_tail = 0;
+static volatile uint8_t usb_rx_buf_tail;
// Number of bytes in receive buffer
-volatile uint8_t usb_rx_count = 0;
+volatile uint8_t usb_rx_count;
volatile bool mp_cdc_enabled = false;
volatile bool usb_transmitting = false;
@@ -133,11 +133,8 @@ static bool read_complete(const uint8_t ep, const enum usb_xfer_code rc, const u
uint8_t c = cdc_packet_buffer[i];
if (c == mp_interrupt_char) {
mp_keyboard_interrupt();
- // If interrupted, flush all the input.
- usb_rx_count = 0;
- usb_rx_buf_head = 0;
- usb_rx_buf_tail = 0;
- break;
+ // Don't put the interrupt into the buffer, just continue.
+ continue;
} else {
// The count of characters present in receive buffer is
// incremented.
@@ -147,7 +144,7 @@ static bool read_complete(const uint8_t ep, const enum usb_xfer_code rc, const u
if (usb_rx_buf_tail == USB_RX_BUF_SIZE) {
// Reached the end of buffer, revert back to beginning of
// buffer.
- usb_rx_buf_tail = 0;
+ usb_rx_buf_tail = 0x00;
}
}
}
@@ -222,7 +219,8 @@ void init_usb(void) {
mscdf_register_callback(MSCDF_CB_TEST_DISK_READY, (FUNC_PTR)usb_msc_disk_is_ready);
mscdf_register_callback(MSCDF_CB_XFER_BLOCKS_DONE, (FUNC_PTR)usb_msc_xfer_done);
- usbdc_start(&multi_desc);
+ int32_t result = usbdc_start(&multi_desc);
+ while (result != ERR_NONE) {}
usbdc_attach();
}
@@ -317,12 +315,3 @@ void usb_write(const char* buffer, uint32_t len) {
bool usb_connected(void) {
return cdc_enabled();
}
-
-// Poll for input if keyboard interrupts are enabled,
-// so that we can check for the interrupt char. read_complete() does the checking.
-void usb_cdc_background() {
- //
- if (mp_interrupt_char != -1 && cdc_enabled() && !pending_read) {
- start_read();
- }
-}
diff --git a/ports/atmel-samd/usb.h b/ports/atmel-samd/usb.h
index 45c05df9c..754331211 100644
--- a/ports/atmel-samd/usb.h
+++ b/ports/atmel-samd/usb.h
@@ -37,6 +37,5 @@ int usb_read(void);
void usb_write(const char* buffer, uint32_t len);
bool usb_bytes_available(void);
bool usb_connected(void);
-void usb_cdc_background(void);
#endif // __MICROPY_INCLUDED_ATMEL_SAMD_USB_H__