Merge pull request #391 from tannewt/longint_usb_fix
Enable LONGINT on M4 + usb fix
This commit is contained in:
commit
3b17980822
@ -10,8 +10,8 @@ endif
|
||||
BUILD ?= build-$(BOARD)
|
||||
|
||||
include ../../py/mkenv.mk
|
||||
-include mpconfigport.mk
|
||||
include boards/$(BOARD)/mpconfigboard.mk
|
||||
-include mpconfigport.mk
|
||||
|
||||
# qstr definitions (must come before including py.mk)
|
||||
QSTR_DEFS = qstrdefsport.h
|
||||
|
@ -59,8 +59,6 @@
|
||||
#define MICROPY_PY_URANDOM_EXTRA_FUNCS (0)
|
||||
#define MICROPY_PY_STRUCT (0)
|
||||
#define MICROPY_PY_SYS (1)
|
||||
// If you change MICROPY_LONGINT_IMPL, also change MPY_TOOL_LONGINT_IMPL in mpconfigport.mk.
|
||||
#define MICROPY_LONGINT_IMPL (MICROPY_LONGINT_IMPL_NONE)
|
||||
#define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_FLOAT)
|
||||
#define MICROPY_STREAMS_NON_BLOCK (1)
|
||||
|
||||
@ -141,12 +139,17 @@ typedef long mp_off_t;
|
||||
#define CIRCUITPY_MCU_FAMILY samd21
|
||||
#define MICROPY_PY_SYS_PLATFORM "Atmel SAMD21"
|
||||
#define PORT_HEAP_SIZE (16384 + 4096)
|
||||
// If you change MICROPY_LONGINT_IMPL, also change MPY_TOOL_LONGINT_IMPL in mpconfigport.mk.
|
||||
#define MICROPY_LONGINT_IMPL (MICROPY_LONGINT_IMPL_NONE)
|
||||
#endif
|
||||
|
||||
#ifdef SAMD51
|
||||
#define CIRCUITPY_MCU_FAMILY samd51
|
||||
#define MICROPY_PY_SYS_PLATFORM "MicroChip SAMD51"
|
||||
#define PORT_HEAP_SIZE (0x20000) // 128KiB
|
||||
// If you change MICROPY_LONGINT_IMPL, also change MPY_TOOL_LONGINT_IMPL in mpconfigport.mk.
|
||||
#define MICROPY_LONGINT_IMPL (MICROPY_LONGINT_IMPL_MPZ)
|
||||
#define MP_SSIZE_MAX (0x7fffffff)
|
||||
#endif
|
||||
|
||||
// extra built in modules to add to the list of known ones
|
||||
|
@ -1,7 +1,12 @@
|
||||
# Define an equivalent for MICROPY_LONGINT_IMPL, to pass to $(MPY-TOOL) in py/mkrules.mk
|
||||
# $(MPY-TOOL) needs to know what kind of longint to use (if any) to freeze long integers.
|
||||
# This should correspond to the MICROPY_LONGINT_IMPL definition in mpconfigport.h.
|
||||
ifeq ($(CHIP_FAMILY), samd21)
|
||||
MPY_TOOL_LONGINT_IMPL = -mlongint-impl=none
|
||||
endif
|
||||
|
||||
ifeq ($(CHIP_FAMILY), samd51)
|
||||
MPY_TOOL_LONGINT_IMPL = -mlongint-impl=mpz
|
||||
endif
|
||||
|
||||
INTERNAL_LIBM = 1
|
||||
|
||||
|
@ -107,7 +107,11 @@ static volatile bool pending_read;
|
||||
|
||||
static int32_t start_read(void) {
|
||||
pending_read = true;
|
||||
return cdcdf_acm_read(cdc_packet_buffer, 64);
|
||||
int32_t result = cdcdf_acm_read(cdc_packet_buffer, 64);
|
||||
if (result != ERR_NONE) {
|
||||
pending_read = false;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
static bool read_complete(const uint8_t ep, const enum usb_xfer_code rc, const uint32_t count) {
|
||||
@ -222,7 +226,7 @@ void init_usb(void) {
|
||||
usbdc_attach();
|
||||
}
|
||||
|
||||
static inline bool cdc_enabled(void) {
|
||||
static bool cdc_enabled(void) {
|
||||
if (mp_cdc_enabled) {
|
||||
return true;
|
||||
}
|
||||
@ -239,11 +243,10 @@ static inline bool cdc_enabled(void) {
|
||||
}
|
||||
|
||||
bool usb_bytes_available(void) {
|
||||
if (!pending_read) {
|
||||
if (cdc_enabled() && !pending_read) {
|
||||
start_read();
|
||||
}
|
||||
if (usb_rx_count == 0) {
|
||||
cdc_enabled();
|
||||
return false;
|
||||
}
|
||||
return usb_rx_count > 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user