Commit graph

18 commits

Author SHA1 Message Date
sam blenny
08bc84b4f4 revert usb.core.Device error message changes
This puts the error messages back like they were, leaving the null
pointer dereference fixes in place.
2024-10-07 17:50:22 +00:00
sam blenny
6cc41f0bf9 return early after raising USBError
This commit makes sure that functions in usb.core.Device return as
soon as they raise a MicroPython exception rather than continuing
on with whatever code would normally run. This will hopefully help
to avoid things like dereferencing null pointers.
2024-09-30 01:18:18 +00:00
sam blenny
154ef2e36d Change USB NULL errors to short strings
shared-module/usb/core/Device.c had several spots where it would
raise a MicroPython exception with a NULL argument. That made it
very difficult for CircuitPython code to attempt to recover from
fault conditions caused by quirky USB device behavior. This adds
short error strings to distinguish the different types of faults.
2024-09-29 18:20:11 +00:00
Dan Halbert
3f4d9310ff CircuitPython files: replace STATIC with static 2024-05-20 11:02:17 -04:00
Dan Halbert
950b5d09d2 guard2once -s ... 2024-05-19 20:40:44 -04:00
Dan Halbert
747b7619ea update headers of most CircuitPython-only files 2024-05-17 14:56:28 -04:00
Scott Shawcroft
0cf3a66c81
Provide language code to string descriptors
This improves #8885 but doesn't fix the read error.
2024-02-23 15:51:12 -08:00
774f6ac6ab
Switch to using MP_ERROR_TEXT instead of translate, globally 2023-10-30 09:49:06 +01:00
Dan Halbert
06765ccfa6 RP2040 now builds 2023-10-05 14:49:49 -04:00
Scott Shawcroft
9152659912
Merge remote-tracking branch 'adafruit/main' into cache_config_desc 2023-08-03 13:37:53 -07:00
Scott Shawcroft
59e6cab252
Cache configuration descriptor
We use it to open endpoints as they are used. Fetching the descriptor
as needed can cause issues with devices that we're expecting a control
packet while another transaction was ongoing. Specifically, a usb
thumb drive didn't expect a control transaction while doing a SCSI
transaction.

This PR also aborts transactions on timeout or ctrl-c interrupt. It
doesn't always recover though...
2023-08-02 14:26:11 -07:00
Scott Shawcroft
539f34f7fd
Three small changes
1. Raise an exception when creating a USB device when host isn't
  initialized.
2. Mark RP2040 dtcm_bss as NOLOAD since it doesn't need to be
  loaded (just zeroed.)
3. Fix submodule location for ulab to Jeff's copy.
2023-08-01 13:16:38 -07:00
Scott Shawcroft
e45a61f57e
Align fatfs window buffer for tinyusb
Also, update tinyusb.
2023-07-27 09:15:58 -07:00
6174e585af
usb.core.Device: fix trailing NUL on e.g., product string
.. and simplify the code to use vstr_add_char.
2023-07-12 08:47:33 -05:00
Scott Shawcroft
2686beab36
Basic USB host support and keyboard workflow
Connects up read, write and ctrl_transfer to TinyUSB. USB Host
support is available on iMX RT and RP2040.

Fixes #6527 (imx) and fixes #5986 (rp2).
2023-07-10 14:22:21 -07:00
Dan Halbert
5cb21539f2 use revised USB host API on mimxrt10xx 2023-03-10 13:12:37 -05:00
Scott Shawcroft
00dcf6bd03
Tweaks from review 2022-03-11 10:51:50 -08:00
Scott Shawcroft
83593a1558
Start of USB host API
This allows you to list and explore connected USB devices. It
only stubs out the methods to communicate to endpoints. That will
come in a follow up once TinyUSB has it. (It's in progress.)

Related to #5986
2022-03-07 18:07:25 -08:00