On Fri, Mar 10, 2023 at 10:39 PM Gregory Nutt <spudan...@gmail.com> wrote:
> > On 3/10/2023 8:12 AM, Xiang Xiao wrote: > > The only problem is that terminal is optional: > > > https://github.com/apache/nuttx/blob/master/drivers/serial/Kconfig#L167-L174 > > So, if the user doesn't enable CONFIG_SERIAL_TERMIOS in defconfig, > readline > > will stop working due to failure to disable ECHO. > > Isn't the default setting of ECHO disabled? My understanding is the > ECHO is always /disabled /unless it is specifically /enabled /in the > TERMIOS settings. > No, it depends on isconsole: https://github.com/apache/nuttx/blob/master/drivers/serial/serial.c#L1303-L1308 https://github.com/apache/nuttx/blob/master/drivers/serial/serial.c#L1821-L1840 https://github.com/apache/nuttx/blob/master/drivers/serial/serial.c#L339-L344 All terminal special handling(\r\n<->\n, ECHO CRTL+C) is activated if isconsole equals true. And all serial ports designed for shell set isconsole=true statically. > > Three option here: > > > > 1. Remove SERIAL_TERMIOS and enable terminal setting always > I think so. I previously argued that TERMIOS should not be optional. > It is required by POSIX. There was discussion about the size increase, > but I don't think there is any significant size increase due to this. > We could measure the increase with TERMIOS enabled and disabled to see. > > 2. readline or special tool designed for raw mode select > SERIAL_TERMIOS > > in their config > That would be insufficient. Other logic needs TERMIOS too. Other than > a size increase, there is no harm in enabling TERMIOS. But if TERMIOS > is not enabled, then that can be a source of errors. > > 3. Keep SERIAL_TERMIOS option, but simulate terminal setting by > change > > isconsole flag > My recollection is that the isconsole flag was added ONLY to assure that > lines sent from the console terminated in CR-LF as required by most > terminal emulators. It never had anything to do with ECHO or other > TERMIOS settings recently. That extension of the semantics is not good > and introduces lots of problems. Just because a serial device is the > console device, that should not generally effect its behavior. > > Both code size and change is small for option 3. > > Except I don't think it is correct. > >