configs/lpcxpresso-lpc54628: Modify the TWM configurations to properly inject keyboard data. This way, in the case of multiple NxTERMs, only the NxTerm at the top of the heiararchy gets the keyboard input. Otherwise, it is not possible to use multiple NxTerms with each the keyboard input going to a different NxTerm window.

This commit is contained in:
Gregory Nutt 2019-05-26 13:17:56 -06:00
parent 788f77a9af
commit a82e8db811
3 changed files with 22 additions and 20 deletions

View File

@ -538,30 +538,30 @@ Configurations
just some issues/topics unique to the LPCXpresso-LPC54628 and/or this just some issues/topics unique to the LPCXpresso-LPC54628 and/or this
configuration. configuration.
1. The NxTerm application is available as the "NuttShell" entry in the 1. There is a responsive-ness issue the the FT5x06 touchscreen controller.
Main Menu. When pressed, this will bring up an NSH session in a
Twm4Nx window. There is an issue, however: The NxTerm gets its
input from the console (/dev/console). Since the NxTerm keyboard
input comes directly from /dev/console, it goes to whichever task has
an outstanding read on the console device. That works well if there
is only a single NxTerm window. But if there are multiple NxTerm
windows, then it is anyone's guess which will receive the keyboard
input. That does not work well in such cases.
2. There is a responsive-ness issue the the FT5x06 touchscreen controller.
The pin selected by the board designers will not support interrupts. The pin selected by the board designers will not support interrupts.
Therefore, a fallback polled mode is use. This polled mode has Therefore, a fallback polled mode is use. This polled mode has
significant inherent delays that effect the user experience when significant inherent delays that effect the user experience when
touching buttons or grabbing and moving objects on the desktop. touching buttons or grabbing and moving objects on the desktop.
3. There is no touchscreen calibration yet. But fortunately, the FT5x06 2. The NxTerm application is available as the "NuttShell" entry in the
has the same resolution and orientation as the LCD and so can be used Main Menu. When pressed, this will bring up an NSH session in a
without any calibration. There are still inaccuracies due to the Twm4Nx window. There is a performance issue, however, due to another
lack of calibration, however. These show up especially along the issue with the polled mode in the ft5x06 driver. When that driver
very top of the display where it can be very difficult to touch runs in polled mode, it samples the touch data at a high rate. Each
buttons or grab'n'move object. sample is sufficient to wake up the Twm4Nx poll() with POLLIN data
availability. But when Twm4Nx tries to read the data, it falls under
the FT5x06.c there threshold and no data is returned.
4. Color artifacts: In the CLASSIC configuration, the background of the The actual delay various dynamically from 50 to 200 millisecond
intervals.
A possible solution might be to beef up the POLLIN notification logic
in FT5x06.c to avoid these false poll() wake-ups. That, however, is
non-trivial since it would have to support the polled as well as the
non-polled mode.
3. Color artifacts: In the CLASSIC configuration, the background of the
cental NX image is a slightly different hue of blue. For the cental NX image is a slightly different hue of blue. For the
CONTEMPORARY configuration, the toolbar buttons are supposed to be CONTEMPORARY configuration, the toolbar buttons are supposed to be
borderless. There is however, a fine border around each toolbar borderless. There is however, a fine border around each toolbar

View File

@ -65,6 +65,7 @@ CONFIG_NXTERM=y
CONFIG_NXTERM_CACHESIZE=32 CONFIG_NXTERM_CACHESIZE=32
CONFIG_NXTERM_CURSORCHAR=95 CONFIG_NXTERM_CURSORCHAR=95
CONFIG_NXTERM_MXCHARS=325 CONFIG_NXTERM_MXCHARS=325
CONFIG_NXTERM_NXKBDIN=y
CONFIG_NXTK_BORDERCOLOR1=0x5cb7 CONFIG_NXTK_BORDERCOLOR1=0x5cb7
CONFIG_NXTK_BORDERCOLOR2=0x21c9 CONFIG_NXTK_BORDERCOLOR2=0x21c9
CONFIG_NXTK_BORDERCOLOR3=0xffdf CONFIG_NXTK_BORDERCOLOR3=0xffdf
@ -99,7 +100,7 @@ CONFIG_SYMTAB_ORDEREDBYNAME=y
CONFIG_TASK_NAME_SIZE=0 CONFIG_TASK_NAME_SIZE=0
CONFIG_TWM4NX_ARCHINIT=y CONFIG_TWM4NX_ARCHINIT=y
CONFIG_TWM4NX_ICONMGR_NCOLUMNS=2 CONFIG_TWM4NX_ICONMGR_NCOLUMNS=2
CONFIG_TWM4NX_NOKEYBOARD=y CONFIG_TWM4NX_KEYBOARD_DEVPATH="/dev/console"
CONFIG_TWM4NX_TOUCHSCREEN=y CONFIG_TWM4NX_TOUCHSCREEN=y
CONFIG_USART0_SERIAL_CONSOLE=y CONFIG_USART0_SERIAL_CONSOLE=y
CONFIG_USER_ENTRYPOINT="twm4nx_main" CONFIG_USER_ENTRYPOINT="twm4nx_main"

View File

@ -65,6 +65,7 @@ CONFIG_NXTERM=y
CONFIG_NXTERM_CACHESIZE=32 CONFIG_NXTERM_CACHESIZE=32
CONFIG_NXTERM_CURSORCHAR=95 CONFIG_NXTERM_CURSORCHAR=95
CONFIG_NXTERM_MXCHARS=325 CONFIG_NXTERM_MXCHARS=325
CONFIG_NXTERM_NXKBDIN=y
CONFIG_NXTK_BORDERCOLOR1=0x5cb7 CONFIG_NXTK_BORDERCOLOR1=0x5cb7
CONFIG_NXTK_BORDERCOLOR2=0x21c9 CONFIG_NXTK_BORDERCOLOR2=0x21c9
CONFIG_NXTK_BORDERCOLOR3=0xffdf CONFIG_NXTK_BORDERCOLOR3=0xffdf
@ -101,7 +102,7 @@ CONFIG_TASK_NAME_SIZE=0
CONFIG_TWM4NX_ARCHINIT=y CONFIG_TWM4NX_ARCHINIT=y
CONFIG_TWM4NX_CONTEMPORARY=y CONFIG_TWM4NX_CONTEMPORARY=y
CONFIG_TWM4NX_ICONMGR_NCOLUMNS=2 CONFIG_TWM4NX_ICONMGR_NCOLUMNS=2
CONFIG_TWM4NX_NOKEYBOARD=y CONFIG_TWM4NX_KEYBOARD_DEVPATH="/dev/console"
CONFIG_TWM4NX_TOUCHSCREEN=y CONFIG_TWM4NX_TOUCHSCREEN=y
CONFIG_USART0_SERIAL_CONSOLE=y CONFIG_USART0_SERIAL_CONSOLE=y
CONFIG_USER_ENTRYPOINT="twm4nx_main" CONFIG_USER_ENTRYPOINT="twm4nx_main"