this implementation is hoped to be smaller. (feather_m4_express/fr fits
unlike the other PR; approximate savings ~600 bytes)
Minor difference to standard Python: A `dict` object has a
`move_to_end` method. However, calling this method always results in
TypeError.
Implementing it this way means that the method table can still be shared
between OrderedDict and builtin dict.
Closes#4408.
Originally, all Makefile variables were implicitly included in
settings[]. When I revised ci_set_matrix, only explicltly named
variables are included.
Depending on the set of changed files, ci_set_matrix needs the
SRC_PATTERNS variable, so include it explicitly.
Typical error, seen in the history of building this PR:
```
Traceback (most recent call last):
File "/home/runner/work/circuitpython/circuitpython/tools/ci_set_matrix.py", line 309, in <module>
main()
File "/home/runner/work/circuitpython/circuitpython/tools/ci_set_matrix.py", line 305, in main
set_boards(run_all)
File "/home/runner/work/circuitpython/circuitpython/tools/ci_set_matrix.py", line 215, in set_boards
if module in settings["SRC_PATTERNS"]:
~~~~~~~~^^^^^^^^^^^^^^^^
KeyError: 'SRC_PATTERNS'
Error: Process completed with exit code 1.
```
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...
the backlight situation will be revisited with the next board prototype,
but it's good to prove this can be done.
Depends on https://github.com/adafruit/esp32-camera/pull/6 which should
be merged before this.
while developing esp-camera I had the problem that firmware.elf was
not regenerated if the only file I edited was in the esp32-camera
submodule.
By telling make that $(IDF_CMAKE_TARGETS), the list of .a fliles
produced by ninja-building esp-idf, depend on esp-idf-stamp and that
firmware.elf in turn depends on these files, the ninja build is re-run
on each make, which is reasonably quick if nothing needs to be rebuilt.
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.