micropython/extmod
Angus Gratton 9d0d262be0 extmod/machine_usb_device: Add support for Python USB devices.
This new machine-module driver provides a "USBDevice" singleton object and
a shim TinyUSB "runtime" driver that delegates the descriptors and all of
the TinyUSB callbacks to Python functions.  This allows writing arbitrary
USB devices in pure Python.  It's also possible to have a base built-in
USB device implemented in C (eg CDC, or CDC+MSC) and a Python USB device
added on top of that.

This work was funded through GitHub Sponsors.

Signed-off-by: Angus Gratton <angus@redyak.com.au>
2024-03-15 14:22:11 +11:00
..
asyncio extmod/asyncio: Make current_task raise exception when there is no task. 2024-02-28 15:48:51 +11:00
axtls-include all: Prune trailing whitespace. 2024-03-07 16:25:17 +11:00
btstack all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
lwip-include all: Unify header guard usage. 2017-07-18 11:57:39 +10:00
mbedtls all: Update bindings, ports and tests for mbedtls v3.5.1. 2024-01-30 11:08:46 +11:00
nimble extmod/nimble: Check for active before setting address mode. 2024-03-15 12:59:58 +11:00
extmod.cmake extmod/machine_usb_device: Add support for Python USB devices. 2024-03-15 14:22:11 +11:00
extmod.mk extmod/machine_usb_device: Add support for Python USB devices. 2024-03-15 14:22:11 +11:00
font_petme128_8x8.h extmod: Move font_petme128_8x8.h from ports/stm32 to extmod. 2022-05-05 13:30:40 +10:00
machine_adc.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
machine_adc_block.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
machine_bitstream.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
machine_i2c.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
machine_i2s.c esp32/machine_i2s: Integrate new I2S IDF driver. 2024-03-08 13:31:02 +11:00
machine_mem.c extmod/modmachine: Add MICROPY_PY_MACHINE_MEMX configuration option. 2024-03-15 12:04:34 +11:00
machine_pinbase.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
machine_pulse.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
machine_pwm.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
machine_signal.c extmod/modmachine: Add MICROPY_PY_MACHINE_SIGNAL configuration option. 2024-03-15 12:04:25 +11:00
machine_spi.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
machine_timer.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
machine_uart.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
machine_usb_device.c extmod/machine_usb_device: Add support for Python USB devices. 2024-03-15 14:22:11 +11:00
machine_wdt.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
misc.h extmod/os_dupterm: Let mp_os_dupterm_tx_strn() return num bytes written. 2023-12-22 10:26:52 +11:00
modasyncio.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modbinascii.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modbluetooth.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modbluetooth.h all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modbtree.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modcryptolib.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
moddeflate.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modframebuf.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modhashlib.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modheapq.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modjson.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modlwip.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modmachine.c extmod/machine_usb_device: Add support for Python USB devices. 2024-03-15 14:22:11 +11:00
modmachine.h extmod/machine_usb_device: Add support for Python USB devices. 2024-03-15 14:22:11 +11:00
modnetwork.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modnetwork.h extmod/modnetwork: Add deinit function to NIC protocol. 2023-12-06 17:32:00 +11:00
modonewire.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modos.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modplatform.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modplatform.h extmod/modplatform: Set MICROPY_PLATFORM_ARCH on riscv platforms. 2023-06-23 15:34:22 +10:00
modrandom.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modre.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modselect.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modsocket.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modtime.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modtime.h all: Rename *umodule*.h to remove the "u" prefix. 2023-06-08 17:54:14 +10:00
modtls_axtls.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modtls_mbedtls.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
moductypes.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modvfs.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modwebrepl.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modwebsocket.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modwebsocket.h all: Rename *umodule*.h to remove the "u" prefix. 2023-06-08 17:54:14 +10:00
mpbthci.c extmod/modbluetooth: Refactor stack/hci/driver/port bindings. 2020-09-08 11:41:31 +10:00
mpbthci.h extmod/nimble: Add support for reading whole HCI UART packets. 2022-06-03 11:53:28 +10:00
network_cyw43.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
network_cyw43.h extmod: Add network-level class binding to cyw43 driver. 2019-06-03 16:47:35 +10:00
network_esp_hosted.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
network_lwip.c extmod/modnetwork: Allow more extensive port-specific customisation. 2023-03-01 01:26:44 +11:00
network_ninaw10.c extmod/network_ninaw10: Fix error messages. 2024-03-14 18:26:41 +01:00
network_wiznet5k.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
os_dupterm.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
vfs.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
vfs.h py/builtin: Clean up and simplify import_stat and builtin_open config. 2022-05-25 13:04:45 +10:00
vfs_blockdev.c all: Reformat C and Python source code with tools/codeformat.py. 2020-02-28 10:33:03 +11:00
vfs_fat.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
vfs_fat.h extmod: Factor out block-device struct to make independent of fatfs. 2019-10-29 12:12:37 +11:00
vfs_fat_diskio.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
vfs_fat_file.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
vfs_lfs.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
vfs_lfs.h extmod: Add VFS littlefs bindings. 2019-10-29 14:17:29 +11:00
vfs_lfsx.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
vfs_lfsx_file.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
vfs_posix.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
vfs_posix.h extmod/vfs: Introduce a C-level VFS protocol, with fast import_stat. 2018-06-06 14:33:42 +10:00
vfs_posix_file.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
vfs_reader.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
virtpin.c py/obj: Add accessors for type slots and use everywhere. 2022-09-19 19:06:07 +10:00
virtpin.h all: Unify header guard usage. 2017-07-18 11:57:39 +10:00