this happens to make the occasional FS dither artifact disappear.
I guess `a * b >> 8` and `(a * b) / 256` are not identical. I'm not
sure if it was just the parens or not, but write the clearer code and
rely on the compiler to substitute an appropriate shift if possible.
- update esp-idf to v4.4
- add esp32s3 support
- add analogio on esp32c3
- disable rgbmatrix on all espressif soc
Co-authored-by: Scott Shawcroft <scott@adafruit.com>
Co-authored-by: Seon Rozenblum <seon@unexpectedmaker.com>
As @neradoc and @anecdata noted, we can't depend on the reset reason.
Instead, just rely on the existing safe mode logic (the write already is
skipped anytime boot.py was skipped), and otherwise potentially write
boot_out.txt anytime it differs from the version on disk (or if the file
doesn't exist in the first place)
Testing performed: On qtpy m0 haxpress, removed boot_out.txt and clicked
reset button. verified boot_out.txt was recreated.
Closes#5588
This targets the 64-bit CPU Raspberry Pis. The BCM2711 on the Pi 4
and the BCM2837 on the Pi 3 and Zero 2W. There are 64-bit fixes
outside of the ports directory for it.
There are a couple other cleanups that were incidental:
* Use const mcu_pin_obj_t instead of omitting the const. The structs
themselves are const because they are in ROM.
* Use PTR <-> OBJ conversions in more places. They were found when
mp_obj_t was set to an integer type rather than pointer.
* Optimize submodule checkout because the Pi submodules are heavy
and unnecessary for the vast majority of builds.
Fixes#4314
mp_obj_float_get gets the value of an object, which must be
exactly a float. mp_obj_get_float gets the float value of
an object of various types, including floats & ints.