summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xmain.c26
-rw-r--r--ports/atmel-samd/Makefile2
-rw-r--r--ports/raspberrypi/common-hal/pwmio/PWMOut.c2
-rw-r--r--shared-bindings/usb_cdc/__init__.c9
-rw-r--r--shared-bindings/usb_cdc/__init__.h4
-rw-r--r--shared-module/usb_cdc/Serial.h2
-rw-r--r--shared-module/usb_cdc/__init__.c42
-rw-r--r--shared-module/usb_cdc/__init__.h4
-rw-r--r--supervisor/shared/usb/usb.c5
9 files changed, 51 insertions, 45 deletions
diff --git a/main.c b/main.c
index 7bfa565df..7df6e293a 100755
--- a/main.c
+++ b/main.c
@@ -69,6 +69,19 @@
#include "shared-bindings/alarm/__init__.h"
#endif
+#if CIRCUITPY_BLEIO
+#include "shared-bindings/_bleio/__init__.h"
+#include "supervisor/shared/bluetooth.h"
+#endif
+
+#if CIRCUITPY_BOARD
+#include "shared-module/board/__init__.h"
+#endif
+
+#if CIRCUITPY_CANIO
+#include "common-hal/canio/CAN.h"
+#endif
+
#if CIRCUITPY_DISPLAYIO
#include "shared-module/displayio/__init__.h"
#endif
@@ -81,17 +94,8 @@
#include "shared-module/network/__init__.h"
#endif
-#if CIRCUITPY_BOARD
-#include "shared-module/board/__init__.h"
-#endif
-
-#if CIRCUITPY_BLEIO
-#include "shared-bindings/_bleio/__init__.h"
-#include "supervisor/shared/bluetooth.h"
-#endif
-
-#if CIRCUITPY_CANIO
-#include "common-hal/canio/CAN.h"
+#if CIRCUITPY_USB_CDC
+#include "shared-module/usb_cdc/__init__.h"
#endif
#if CIRCUITPY_WIFI
diff --git a/ports/atmel-samd/Makefile b/ports/atmel-samd/Makefile
index 58c1c0d60..48724af0c 100644
--- a/ports/atmel-samd/Makefile
+++ b/ports/atmel-samd/Makefile
@@ -122,7 +122,7 @@ CFLAGS += -ftree-vrp
$(echo PERIPHERALS_CHIP_FAMILY=$(PERIPHERALS_CHIP_FAMILY))
#Debugging/Optimization
ifeq ($(DEBUG), 1)
- CFLAGS += -ggdb3 -Og
+ CFLAGS += -ggdb3 -Og -Os
# You may want to disable -flto if it interferes with debugging.
CFLAGS += -flto -flto-partition=none
# You may want to enable these flags to make setting breakpoints easier.
diff --git a/ports/raspberrypi/common-hal/pwmio/PWMOut.c b/ports/raspberrypi/common-hal/pwmio/PWMOut.c
index 6e23e236b..e861bab5a 100644
--- a/ports/raspberrypi/common-hal/pwmio/PWMOut.c
+++ b/ports/raspberrypi/common-hal/pwmio/PWMOut.c
@@ -165,7 +165,6 @@ void common_hal_pwmio_pwmout_deinit(pwmio_pwmout_obj_t* self) {
extern void common_hal_pwmio_pwmout_set_duty_cycle(pwmio_pwmout_obj_t* self, uint16_t duty) {
self->duty_cycle = duty;
uint16_t actual_duty = duty * self->top / ((1 << 16) - 1);
- mp_printf(&mp_plat_print, "actual_duty: %d, self->top: %d\n", actual_duty, top); /// ***
pwm_set_chan_level(self->slice, self->channel, actual_duty);
}
@@ -209,7 +208,6 @@ void common_hal_pwmio_pwmout_set_frequency(pwmio_pwmout_obj_t* self, uint32_t fr
} else {
uint32_t top = common_hal_mcu_processor_get_frequency() / frequency;
self->actual_frequency = common_hal_mcu_processor_get_frequency() / top;
- mp_printf(&mp_plat_print, "high speed self->top: %d\n", top); /// ***
self->top = top;
pwm_set_clkdiv_int_frac(self->slice, 1, 0);
pwm_set_wrap(self->slice, self->top - 1);
diff --git a/shared-bindings/usb_cdc/__init__.c b/shared-bindings/usb_cdc/__init__.c
index d6a70b177..6ded44c4f 100644
--- a/shared-bindings/usb_cdc/__init__.c
+++ b/shared-bindings/usb_cdc/__init__.c
@@ -38,18 +38,17 @@
//|
//| The `usb_cdc` module allows access to USB CDC (serial) communications.
//|
-//| serial: Tuple[Serial, ...]
+//| serials: Tuple[Serial, ...]
//| """Tuple of all CDC streams. Each item is a `Serial`."""
//|
-mp_map_elem_t usb_cdc_module_globals_table[] = {
+static const mp_map_elem_t usb_cdc_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_usb_cdc) },
{ MP_ROM_QSTR(MP_QSTR_Serial), MP_OBJ_FROM_PTR(&usb_cdc_serial_type) },
- { MP_ROM_QSTR(MP_QSTR_serial), mp_const_empty_tuple },
+ { MP_ROM_QSTR(MP_QSTR_serials), MP_OBJ_FROM_PTR(&usb_cdc_serials_tuple) },
};
-// This isn't const so we can set the streams dynamically.
-MP_DEFINE_MUTABLE_DICT(usb_cdc_module_globals, usb_cdc_module_globals_table);
+static MP_DEFINE_CONST_DICT(usb_cdc_module_globals, usb_cdc_module_globals_table);
const mp_obj_module_t usb_cdc_module = {
.base = { &mp_type_module },
diff --git a/shared-bindings/usb_cdc/__init__.h b/shared-bindings/usb_cdc/__init__.h
index 7938e9172..e81d243e6 100644
--- a/shared-bindings/usb_cdc/__init__.h
+++ b/shared-bindings/usb_cdc/__init__.h
@@ -27,8 +27,6 @@
#ifndef MICROPY_INCLUDED_SHARED_BINDINGS_USB_CDC___INIT___H
#define MICROPY_INCLUDED_SHARED_BINDINGS_USB_CDC___INIT___H
-#include "py/obj.h"
-
-extern mp_obj_dict_t usb_cdc_module_globals;
+#include "shared-module/usb_cdc/__init__.h"
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_USB_CDC___INIT___H
diff --git a/shared-module/usb_cdc/Serial.h b/shared-module/usb_cdc/Serial.h
index 7e3c53e8a..60a1d1922 100644
--- a/shared-module/usb_cdc/Serial.h
+++ b/shared-module/usb_cdc/Serial.h
@@ -3,7 +3,7 @@
*
* The MIT License (MIT)
*
- * Copyright (c) 2020 Dan Halbert for Adafruit Industries
+ * Copyright (c) 2021 Dan Halbert for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
diff --git a/shared-module/usb_cdc/__init__.c b/shared-module/usb_cdc/__init__.c
index ae2412cdd..ecb5777b2 100644
--- a/shared-module/usb_cdc/__init__.c
+++ b/shared-module/usb_cdc/__init__.c
@@ -3,7 +3,7 @@
*
* The MIT License (MIT)
*
- * Copyright (c) 2018 hathach for Adafruit Industries
+ * Copyright (c) 2021 Dan Halbert for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -24,32 +24,34 @@
* THE SOFTWARE.
*/
-#include "shared-bindings/usb_cdc/__init__.h"
-
#include "genhdr/autogen_usb_descriptor.h"
+#include "py/gc.h"
#include "py/obj.h"
#include "py/mphal.h"
#include "py/runtime.h"
#include "py/objtuple.h"
+#include "shared-bindings/usb_cdc/__init__.h"
#include "shared-bindings/usb_cdc/Serial.h"
#include "tusb.h"
-supervisor_allocation* usb_cdc_allocation;
-
-static usb_cdc_serial_obj_t serial_objs[CFG_TUD_CDC];
+#if CFG_TUD_CDC != 2
+#error CFG_TUD_CDC must be exactly 2
+#endif
-void usb_cdc_init(void) {
-
- serial_obj_ptrs *usb_cdc_serial_obj_t[CFG_TUD_CDC];
-
- for (size_t i = 0; i < CFG_TUD_CDC; i++) {
- serial_objs[i].base.type = &usb_cdc_serial_type;
- serial_objs[i].idx = i;
- serial_obj_ptrs[i] = &serial_objs[i];
+static const usb_cdc_serial_obj_t serial_objs[CFG_TUD_CDC] = {
+ { .base.type = &usb_cdc_serial_type,
+ .idx = 0,
+ }, {
+ .base.type = &usb_cdc_serial_type,
+ .idx = 1,
}
-
- serials_tuple->base.type = mp_obj_new_tuple(CFG_TUD_CDC, serials);
-
- repl->base.type =
- repl->idx = 0; mp_map_lookup(&usb_cdc_module_globals.map, MP_ROM_QSTR(MP_QSTR_serial), MP_MAP_LOOKUP)->value = MP_OBJ_FROM_PTR(serials_tuple);
-}
+};
+
+const mp_rom_obj_tuple_t usb_cdc_serials_tuple = {
+ .base.type = &mp_type_tuple,
+ .len = CFG_TUD_CDC,
+ .items = {
+ &serial_objs[0],
+ &serial_objs[1],
+ },
+};
diff --git a/shared-module/usb_cdc/__init__.h b/shared-module/usb_cdc/__init__.h
index 02b48e116..9de3eb2fa 100644
--- a/shared-module/usb_cdc/__init__.h
+++ b/shared-module/usb_cdc/__init__.h
@@ -27,6 +27,8 @@
#ifndef SHARED_MODULE_USB_CDC___INIT___H
#define SHARED_MODULE_USB_CDC___INIT___H
-void usb_cdc_init(void);
+#include "py/objtuple.h"
+
+extern const mp_rom_obj_tuple_t usb_cdc_serials_tuple;
#endif /* SHARED_MODULE_USB_CDC___INIT___H */
diff --git a/supervisor/shared/usb/usb.c b/supervisor/shared/usb/usb.c
index 43564d5d5..af48f4673 100644
--- a/supervisor/shared/usb/usb.c
+++ b/supervisor/shared/usb/usb.c
@@ -26,7 +26,6 @@
#include "py/objstr.h"
#include "shared-bindings/microcontroller/Processor.h"
-#include "shared-module/usb_midi/__init__.h"
#include "supervisor/background_callback.h"
#include "supervisor/port.h"
#include "supervisor/serial.h"
@@ -35,6 +34,10 @@
#include "lib/utils/interrupt_char.h"
#include "lib/mp-readline/readline.h"
+#if CIRCUITPY_USB_MIDI
+#include "shared-module/usb_midi/__init__.h"
+#endif
+
#include "tusb.h"
#if CIRCUITPY_USB_VENDOR