diff options
Diffstat (limited to 'shared')
| -rw-r--r-- | shared/tinyusb/mp_usbd.c | 17 | ||||
| -rw-r--r-- | shared/tinyusb/mp_usbd.h | 3 |
2 files changed, 11 insertions, 9 deletions
diff --git a/shared/tinyusb/mp_usbd.c b/shared/tinyusb/mp_usbd.c index 87c10310f..55af3d4fb 100644 --- a/shared/tinyusb/mp_usbd.c +++ b/shared/tinyusb/mp_usbd.c @@ -38,16 +38,15 @@ #include "device/usbd_pvt.h" #endif -// Legacy TinyUSB task function wrapper, called by some ports from the interpreter hook -void usbd_task(void) { - tud_task_ext(0, false); -} - // TinyUSB task function wrapper, as scheduled from the USB IRQ -static void mp_usbd_task(mp_sched_node_t *node); +static void mp_usbd_task_callback(mp_sched_node_t *node); extern void __real_dcd_event_handler(dcd_event_t const *event, bool in_isr); +void mp_usbd_task(void) { + tud_task_ext(0, false); +} + // If -Wl,--wrap=dcd_event_handler is passed to the linker, then this wrapper // will be called and allows MicroPython to schedule the TinyUSB task when // dcd_event_handler() is called from an ISR. @@ -55,12 +54,12 @@ TU_ATTR_FAST_FUNC void __wrap_dcd_event_handler(dcd_event_t const *event, bool i static mp_sched_node_t usbd_task_node; __real_dcd_event_handler(event, in_isr); - mp_sched_schedule_node(&usbd_task_node, mp_usbd_task); + mp_sched_schedule_node(&usbd_task_node, mp_usbd_task_callback); } -static void mp_usbd_task(mp_sched_node_t *node) { +static void mp_usbd_task_callback(mp_sched_node_t *node) { (void)node; - tud_task_ext(0, false); + mp_usbd_task(); } #endif diff --git a/shared/tinyusb/mp_usbd.h b/shared/tinyusb/mp_usbd.h index 2e4feaca9..340637c95 100644 --- a/shared/tinyusb/mp_usbd.h +++ b/shared/tinyusb/mp_usbd.h @@ -29,6 +29,9 @@ #include "py/obj.h" +// Call this to explicitly run the TinyUSB device task. +void mp_usbd_task(void); + // Function to be implemented in port code. // Can write a string up to MICROPY_HW_USB_DESC_STR_MAX characters long, plus terminating byte. extern void mp_usbd_port_get_serial_number(char *buf); |
