* Fix uart regressions & bugs.
Using `uart.on()` with a search character was broken in that it did
not invoke the callback on a full UART buffer as documented. Logic reworked
to match docs again.
Fixed memory leak on `task_post()` failure (eep!).
Improved logic to attempt to coalesce input bytes to reduce the number of
`task_post()` slots used up by the platform uart.
Finally, added a semaphore to prevent the platform uart from overrunning
the `task_post()` slots all the time on high baud rates (e.g. 1mbit).
With the semaphore in there, the LVM RTOS task gets a chance to actually
process the received data and free up a `task_post()` slot or two.
The above mentioned read coalescing then allows the platform uart to
immediately catch up.
Also added an error log message if the `task_post()` actually does fail.
* Don't cache the uart delims.
Doing so makes reconfiguring those settings from within the callback not
take effect until the currently buffered bytes have been processed.
* ESP32: add support for RS485
This commit adds support for switching UART mode to RS485/IRDA.
Also included are patches for memory leaks then handling UART events other than data.
* ESP32: Documentation for uart.setmode()
- implement file.size for spiffs (#1516)
- fix vfs_lseek() result checking in enduser_setup and clarify SPIFFS_lseek() return value (#1570)
- Handle error condition in file.read() (#1599)
* uart 1/2
* call -> pcall in uart_on_* functions
* fix docs
* fixed console driver when using custom console uart
* fixed line_inverse and error callback
* fixed a crash when uart.start() called more than one time
- Switched hardcoded interrupts to new IDF interrupt allocation
framework.
- gpio module switched to the IDF's per-pin interrupt callback service.
- Improved NodeMCU linker script since it broke with the IDF upgrade.
- Various compatibility updates.
With the recent flash layout changes, it became very possible to misdetect the
flash size. We're now using the partition table as the guard marker, since
that really shouldn't be all 0xff. Also, we now don't clobber the flash
device id (and keep block/sector/page/mask values).
WiFi STA module updated to reflect IDF name changes.
Platform flash and partition api updated to reflect IDF name changes.
Eventually these (and the SPIFFS module) will likely need to be updated
to exclusively work with the esp_partition_xxx() functions in order to
support working with encrypted flash.