* 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.
RTOS driver evicted as it did not play nice with stdio etc.
Implemented a minimal driver to fully support Lua console on UART0. Output
on UART0 done via stdout (provided by the IDF). Input and setup handled
via driver_console/console.c. In addition to the direct input function
console_getc(), the driver also registers in the syscall tables to enable
regular stdio input functions to work (yay!). The Lua VM is still using the
direct interface since it's less overhead, but does also work when going
through stdin/fd 0.
Auto-bauding on the console is not yet functional; revisit when the UART docs
are available.
Module registration/linking/enabling moved over to be Kconfig based. See
updates to base_nodemcu/include/module.h and base_nodemcu/Kconfig for
details.
The sdk-overrides directory/approach is no longer used. The IDF is simply
too different to the old RTOS SDK - we need to adapt our code directly instead.
Everything in app/ is now unused, and will need to be gradually migrated
into components/ though it is probably better to migrate straight from the
latest dev branch.