An experiement to see how much work again it would take to add the T4 methods to allow user sketches to increase the size of Serial ports RX and TX buffers, without having to edit the Source code which does it then for all sketches.
T3.x SerialN Add extra memory capabilities for Serial1-6
Also
Fixed serialEventX yield handling when you call begin multiple times
There is an issue that if you are not using the serialEvent type code and you call SerialX.begin multiple times, it will add that item to the process list multiple times, which can overrun the memory and cause crash or the like.
Fix was to check the list first and see if we are already in the list.
Migrating the half duplex support I did in the Stagnant and out of date PR to enhance Uarts: https://github.com/PaulStoffregen/cores/pull/419
To try to support Half duplex mode in a similar way like we do for RS485 like support.
With T3.x made use of bitband address for the TX Direction setting, so
Except for the begin which calls format, no code changed, we simply stored the bitband address of the TXDIR flag into the TXDIR variable that was already used for the set direction flag.
For T4.x - it is a little more work as there is no bitband support on M7 processors. For GPIO there is a Set and Clear register which we use, but for the appropriate UART register there is no such setup of registers. So I have to special case we are in that mode and do it... Also since not atomic I cli/sei...
Serial Half Duplex - Fix T4Serial1 and T-LC Serial1-3
Updates: T4
T4 Serial 1 did not have proper settings for IOMUXC_LPUART6_TX_SELECT_INPUT
Tested T4.1 Serial1-8
Tested T3.5 Serial1-6
T3.6 - Added support for LPUART which is Serial6 which now works.
T-LC
Make half duplex work on T-LC on Serials1-3
Tested on on T3.5 1-6
With the new beta boards, for those users who don't need an SDCard for
their project, it would be great to allow them to use the 6 IO pins
associated with the SDCARD for other purposes. This would probably
require a cheap adapter, but these are nice signals to be able to be
used. They include:
SPI1: SCK, MISO, MOSI, CS0-2
Serail2: TX/RX
Serial4: TX/RX
I2C1: SCL/SDA
This change adds support for GPIO, SPI, Serial2 and Serial4
On Serial 3 this addition is for all 3.x. Before it was ifdefed to only
do work on Teensy_LC as there is only one valid TX pin. But we now pass
in open drain as an option so this code should allow you to not turn it
on/off on Serial3 on all of these boards
and on Serial4 and Serial5 on the new boards.