* apa102: remove dead code
We can't store strings of hundreds of thousands of characters in RAM, so
this can't possibly have fired, historically. Pixbufs are still RAM
objects, so that's still out. With LFS, it would take a pathological
example to hit the required 400KB TSTRING.
* Add IRQ management functions
* ws2812: fill UART FIFOs with IRQs off
Refactor code to make the use of two fill loops less gross.
`ws2812` buffer extracted to new `pixbuf` module.
* The new pixbuf module has more functionality than the `ws2812`-specific buffer it replaces.
* This is work in progress towards https://github.com/nodemcu/nodemcu-firmware/issues/2916
* The LED driver modules `ws2812`, `ws2801`, `apa102`, and `tm1829` have sprouted `pixbuf` support.
* `NTest` tests for `pixbuf` now exist.
While here, document the ws2812 UART-based overlapping with mainline
execution. Fixes https://github.com/nodemcu/nodemcu-firmware/issues/3140
Co-authored-by: Gregor Hartmann <HHHartmann@users.noreply.github.com>
- Lots of minor but nasty bugfixes to get all tests to run clean
- core lua and test suite fixes to allow luac -F to run cleanly against test suite
- next tranch to get LFS working
- luac.cross -a options plus fixes from feedback
- UART fixes and lua.c merge
- commit of wip prior to rebaselining against current dev
- more tweaks
The PR removed the bulk of non-newlib headers from the NodeMCU source base.
app/libc has now been cut down to the bare minimum overrides to shadow the
corresponding functions in the SDK's libc. The old c_xyz.h headerfiles have been
nuked in favour of the standard <xyz.h> headers, with a few exceptions over in
sdk-overrides. Again, shipping a libc.a without headers is a terrible thing to do. We're
still living on a prayer that libc was configured the same was as a default-configured
xtensa gcc toolchain assumes it is. That part I cannot do anything about, unfortunately,
but it's no worse than it has been before.
This enables our source files to compile successfully using the standard header files,
and use the typical malloc()/calloc()/realloc()/free(), the strwhatever()s and
memwhatever()s. These end up, through macro and linker magic, mapped to the
appropriate SDK or ROM functions.