From 32b99d810cfea0d3e55825bf5a4c1249231ee433 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 4 May 2019 12:34:47 -0600 Subject: [PATCH] configs/lpcxpresso-lpc54628: Add a Twm4Nx configuration. --- configs/lpcxpresso-lpc54628/README.txt | 17 ++++ configs/lpcxpresso-lpc54628/twm4nx/defconfig | 99 ++++++++++++++++++++ configs/same70-xplained/README.txt | 11 +++ configs/sim/README.txt | 8 ++ graphics/Makefile | 1 - graphics/nxterm/nxterm_sem.c | 4 +- 6 files changed, 136 insertions(+), 4 deletions(-) create mode 100644 configs/lpcxpresso-lpc54628/twm4nx/defconfig diff --git a/configs/lpcxpresso-lpc54628/README.txt b/configs/lpcxpresso-lpc54628/README.txt index 7016522503..a09b8b2309 100644 --- a/configs/lpcxpresso-lpc54628/README.txt +++ b/configs/lpcxpresso-lpc54628/README.txt @@ -508,3 +508,20 @@ Configurations graphic (based on the rotating line of apps/examples/nslines). 2019-03-20: Everything works fine! + + twm4nx: + + This configuration exercises the port of TWM to NuttX. A description of + that port is available at apps/graphics/twm4nx/README.txt. + + NOTES: + 1. This version uses the on-board display with the touchscreen for + positional input (instead of a mouse). Keyboard input is currently + disabled only because (1) there is no Twm4Nx application that needs + it, and (2) I will first need to create a USB host driver to support + a USB keyboard. + + STATUS: + 2019-05-04: Initial display is clean but touchscren input is not yet + functional. Left-click main menu functionality is required to test + much more. diff --git a/configs/lpcxpresso-lpc54628/twm4nx/defconfig b/configs/lpcxpresso-lpc54628/twm4nx/defconfig new file mode 100644 index 0000000000..807f598c78 --- /dev/null +++ b/configs/lpcxpresso-lpc54628/twm4nx/defconfig @@ -0,0 +1,99 @@ +# +# This file is autogenerated: PLEASE DO NOT EDIT IT. +# +# You can use "make menuconfig" to make any modifications to the installed .config file. +# You can then do "make savedefconfig" to generate a new defconfig file that includes your +# modifications. +# +# CONFIG_ARCH_FPU is not set +# CONFIG_NXFONTS_DISABLE_16BPP is not set +# CONFIG_NXTK_DEFAULT_BORDERCOLORS is not set +# CONFIG_NX_DISABLE_16BPP is not set +CONFIG_ARCH="arm" +CONFIG_ARCH_BOARD="lpcxpresso-lpc54628" +CONFIG_ARCH_BOARD_LPCXPRESSO_LPC54628=y +CONFIG_ARCH_CHIP_LPC54628=y +CONFIG_ARCH_CHIP_LPC54XX=y +CONFIG_ARCH_INTERRUPTSTACK=2048 +CONFIG_ARCH_STACKDUMP=y +CONFIG_ARCH_STDARG_H=y +CONFIG_BOARD_LOOPSPERMSEC=21082 +CONFIG_EXPERIMENTAL=y +CONFIG_FS_PROCFS=y +CONFIG_FT5X06_POLLMODE=y +CONFIG_FT5X06_SINGLEPOINT=y +CONFIG_FT5X06_SWAPXY=y +CONFIG_GRAPHICS_TWM4NX=y +CONFIG_HAVE_CXX=y +CONFIG_HAVE_CXXINITIALIZE=y +CONFIG_INPUT=y +CONFIG_INPUT_FT5X06=y +CONFIG_LIB_HOSTNAME="LPCXpresso-LPC54628" +CONFIG_LPC54_EMC=y +CONFIG_LPC54_EMC_DYNAMIC_CS0=y +CONFIG_LPC54_EMC_DYNAMIC_CS0_OFFSET=0x00080000 +CONFIG_LPC54_EMC_DYNAMIC_CS0_SIZE=0x00f80000 +CONFIG_LPC54_GPIOIRQ=y +CONFIG_LPC54_I2C2_MASTER=y +CONFIG_LPC54_LCD=y +CONFIG_LPC54_LCD_BGR=y +CONFIG_LPC54_LCD_BPP16_565=y +CONFIG_LPC54_LCD_HBACKPORCH=43 +CONFIG_LPC54_LCD_HFRONTPORCH=8 +CONFIG_LPC54_LCD_VBACKPORCH=12 +CONFIG_LPC54_LCD_VFRONTPORCH=4 +CONFIG_LPC54_LCD_VPULSE=10 +CONFIG_LPC54_LCD_VRAMBASE=0xa0000000 +CONFIG_LPC54_USART0=y +CONFIG_MAX_TASKS=16 +CONFIG_MAX_WDOGPARMS=2 +CONFIG_MM_REGIONS=2 +CONFIG_MQ_MAXMSGSIZE=64 +CONFIG_NFILE_DESCRIPTORS=8 +CONFIG_NFILE_STREAMS=8 +CONFIG_NX=y +CONFIG_NXFONT_SANS22X29B=y +CONFIG_NXFONT_SANS23X27=y +CONFIG_NXTERM=y +CONFIG_NXTERM_CACHESIZE=32 +CONFIG_NXTERM_CURSORCHAR=95 +CONFIG_NXTERM_MXCHARS=325 +CONFIG_NXTERM_NXKBDIN=y +CONFIG_NXTK_BORDERCOLOR1=0x5cb7 +CONFIG_NXTK_BORDERCOLOR2=0x21c9 +CONFIG_NXTK_BORDERCOLOR3=0xffdf +CONFIG_NXWIDGETS_BPP=16 +CONFIG_NXWIDGETS_CUSTOM_EDGECOLORS=y +CONFIG_NXWIDGETS_CUSTOM_FILLCOLORS=y +CONFIG_NXWIDGETS_DEFAULT_BACKGROUNDCOLOR=0x9dfb +CONFIG_NXWIDGETS_DEFAULT_HIGHLIGHTCOLOR=0xc618 +CONFIG_NXWIDGETS_DEFAULT_SELECTEDBACKGROUNDCOLOR=0xd73e +CONFIG_NXWIDGETS_DEFAULT_SHADOWEDGECOLOR=0x21e9 +CONFIG_NXWIDGETS_DEFAULT_SHINEEDGECOLOR=0xffdf +CONFIG_NXWIDGETS_SIZEOFCHAR=1 +CONFIG_NX_BLOCKING=y +CONFIG_NX_KBD=y +CONFIG_NX_SWCURSOR=y +CONFIG_NX_XYINPUT_TOUCHSCREEN=y +CONFIG_PREALLOC_MQ_MSGS=64 +CONFIG_PREALLOC_TIMERS=4 +CONFIG_PREALLOC_WDOGS=8 +CONFIG_RAM_SIZE=163840 +CONFIG_RAM_START=0x20000000 +CONFIG_RAW_BINARY=y +CONFIG_RR_INTERVAL=200 +CONFIG_SCHED_HPWORK=y +CONFIG_SCHED_ONEXIT=y +CONFIG_SCHED_WAITPID=y +CONFIG_SDCLONE_DISABLE=y +CONFIG_START_DAY=4 +CONFIG_START_MONTH=5 +CONFIG_START_YEAR=2019 +CONFIG_SYMTAB_ORDEREDBYNAME=y +CONFIG_TASK_NAME_SIZE=0 +CONFIG_TWM4NX_ARCHINIT=y +CONFIG_TWM4NX_NOKEYBOARD=y +CONFIG_TWM4NX_TOUCHSCREEN=y +CONFIG_USART0_SERIAL_CONSOLE=y +CONFIG_USER_ENTRYPOINT="twm4nx_main" +CONFIG_WDOG_INTRESERVE=0 diff --git a/configs/same70-xplained/README.txt b/configs/same70-xplained/README.txt index c9a11b00de..ac0e4583ae 100644 --- a/configs/same70-xplained/README.txt +++ b/configs/same70-xplained/README.txt @@ -1684,3 +1684,14 @@ Configuration sub-directories STATUS: 2019-04-28: Configuration created. Not verified. + 2019-05-04: Only partially functional. VNC is a difficult way to + debug Twm4Nx because it has its own level of complexities due to + networking, mysterious VNC client behavior, and fragile VNC + configurations. I am setting this on the shelf for the time + being. I will stabilize Twm4Nx on another platform first. Just + too many degrees of freedom. + 2019-05-04: Testing on hardware reveals that VNC is the source of + most of the issues. Things look good on real, local hardware + (see configs/lpcxpresso-lpc54628/twm4nx). VNC is just not mature + enough for this kind of usage at this time. + diff --git a/configs/sim/README.txt b/configs/sim/README.txt index e90d3cc5f7..bbd2629dd8 100644 --- a/configs/sim/README.txt +++ b/configs/sim/README.txt @@ -672,6 +672,9 @@ nsh2 may not even be usable in all of those environments without some "tweaking" See discussion below under the nx11 configuration). + For examples, it expects to be able to include X11/Xlib.h. That currently + fails on my Linux box. + nx Configures to use apps/examples/nx. @@ -851,6 +854,11 @@ nxwm However, I will leave the above text in place until I get then oppotunity to verify that the new UART simulation fixes the problem. + 2019-05-04: Something has changed. Today this configuration failed + to build because is requires CONFIG_NX_XYINPUT=y in the configuration. + That indicates mouse or touchscreen support. Apparently, the current + NxWM will not build without this support. + ostest The "standard" NuttX apps/examples/ostest configuration. diff --git a/graphics/Makefile b/graphics/Makefile index ef311c735e..2e4d9d1fae 100644 --- a/graphics/Makefile +++ b/graphics/Makefile @@ -155,4 +155,3 @@ distclean: clean $(call DELFILE, .depend) -include Make.dep - diff --git a/graphics/nxterm/nxterm_sem.c b/graphics/nxterm/nxterm_sem.c index c54bed93f0..9b1a70560f 100644 --- a/graphics/nxterm/nxterm_sem.c +++ b/graphics/nxterm/nxterm_sem.c @@ -98,11 +98,9 @@ int nxterm_semwait(FAR struct nxterm_state_s *priv) int nxterm_sempost(FAR struct nxterm_state_s *priv) { - pid_t me = getpid(); - /* Make sure that I really hold the semaphore */ - DEBUGASSERT(priv->holder == me); + DEBUGASSERT(priv->holder == getpid()); /* Then let go of it */