From 28ac578cd325536e0fbe8eaeebba524827d0e3a6 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 18 May 2019 15:18:06 -0600 Subject: [PATCH] Update ReleaseNotes in preparation for the 7.30 release. --- ChangeLog | 46 ++-- ReleaseNotes | 610 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 633 insertions(+), 23 deletions(-) diff --git a/ChangeLog b/ChangeLog index 690f8a40f6..0faa742605 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3609,7 +3609,7 @@ NuttX OS test, but configured to build natively on Windows. Its only real purpose is to very the native Windows build logic. * tools/mkdeps.bat and tools/mkdeps.c: mkdeps.bat is a failed attempt - to leverage mkdeps.sh to CMD.exe. It fails because the are certain + to leverage mkdeps.sh to CMD.exe. It fails because there are certain critical CFLAG values that cannot be passed on the CMD.exe command line (like '='). mkdeps.c is a work in progress that will, hopefully, replace both mkdeps.sh and mkdeps.bat. @@ -23789,7 +23789,7 @@ * graphics/ and libs/libnx: Implement new interfaces nx_synch() and nxtk_synch(). This are used to synchronize the NX server with the window client. Currently most of the logic is equivalent to nx_block() and - nxtk_block(), but with slightly different semantics. The are separate + nxtk_block(), but with slightly different semantics. They are separate now because they are likely to diverge in the future. From Gregory Nutt (2019-03-25). * configs/stm32f103-minimum/src/: USB reset was not working appropriately @@ -23842,8 +23842,8 @@ OTGHS from working. From Anthony Merlino (2019-04-03). * arch/arm/src/nrf52/nrf52832_errdata.c: Fix compiler error when following C89. From Erik Englund (2019-04-03). - * The commit corrects the gpioirq when mismatch mode is selected and adds - support for edge detect mode. Slew Rate was also added for + * PIC32MZ: The commit corrects the gpioirq when mismatch mode is selected + and add support for edge detect mode. Slew Rate was also added for completeness. From Abdelatif Guettouche (2019-04-03). * libs/libc/stdio/lib_libvsprintf.c: Restore support for printing NULL string as "(null)". Legacy printf supported printing "(null)" in place @@ -23912,7 +23912,7 @@ Koch (2019-04-08). * arch/arm/src/stm32f7: Ported the PWM from F4 to F7. From Eduard Niesner (2019-04-08). - * graphics/nxbe: Correct some experimental cursor drawing algorithms. + * graphics/nxbe: Correct some experimental cursor drawing algorithms. From Gregory Nutt (2019-04-08). * grahics/nxglib/nxglib.h: Move internal function prototypes from include/nuttx/nx/nxglib.h to graphics/nxglib/nxglib.h. From Gregory Nutt @@ -24060,7 +24060,7 @@ returns nothing. From Mateusz Szafoni (2019-04-28). * configs/same70-xplained/twm4nx: Add a configuration for test Twm4Nx using VNC. From Gregory Nutt (2019-04-28). - * configs/nucleo-l476rg/src: Make naming of functions consistent: + * configs/nucleo-l476rg/src: Make naming of functions consistent: stm32l4_ no stm32_. Inconsistency noted by Phil Coval in Bitbucket PR 864. This commit takes a different approach to resolving the naming inconsistency, however. From Gregory Nutt (2019-04-29). @@ -24074,7 +24074,7 @@ crashes thereafter. But that is a start. From Gregory Nutt (2019-04-29). * In many files: Remove references to CONFIG_DISABLE_SIGNALS. Signals can no longer be disabled. From Gregory Nutt (2019-04-29). - * net/socket/getsockname.c: Fix addrlen check in socket debug features. + * net/socket/getsockname.c: Fix addrlen check in socket debug features. Getsockname checked erroneously a pointer agains 0, where the intention was to dereference the pointer and to check the length. This causes also a compilation failure if the code is compiled with CONFIG_DEBUG_FEATURES @@ -24131,20 +24131,20 @@ for the 1060 both compile correctly, so if I did break anything it's going to be properly evil and difficult to find. - - include/nuttx/usb/hid.h: The usbhid_descriptor_s struct defined in - hid.h included some optional fields that should not be hard-defined as - part of that structure. An arbitrary number of optional entries could be - included in the descriptor, but that is not properly represented. No - code on NuttX currently depends on the structure definition with an - optional descriptor so it is safe to remove. - - Directory re-arrangement and splitting of each imxrt family variant - Prevent intermittent SDCard timeouts by increasing timer in line with spec. - Support data dump on Hardfault - Fix missing ccm definitions and wrong iomux offset - Prevent hardfault when can't read from ENET PHY - - More consistent Ethernet pinmux From Dave Marples (2019-04-30). + - More consistent Ethernet pinmux. + From Dave Marples (2019-04-30). + * include/nuttx/usb/hid.h: The usbhid_descriptor_s struct defined in + hid.h included some optional fields that should not be hard-defined as + part of that structure. An arbitrary number of optional entries could be + included in the descriptor, but that is not properly represented. No + code on NuttX currently depends on the structure definition with an + optional descriptor so it is safe to remove. * Documentation/NuttShell.html: Command date is misspelled as data in chapter 2.12 Show or set the date and time (date). From Michał Łyszczek (2019-05-01). @@ -24152,8 +24152,9 @@ From Gregory Nutt (2019-05-03). * Fix build for battery gauge From Tom Kopriva (2019-05-03). * configs/same70-xplained/twm4nx/defconfig: Switch to 8BPP. That is the - negotiated size requested by the VNC client anyway. - graphics/vnc/server/vnc_color.c: Fix an error in color conversion. From + negotiated size requested by the VNC client anyway. From Gregory Nutt + (2019-05-03). + * graphics/vnc/server/vnc_color.c: Fix an error in color conversion. From Gregory Nutt (2019-05-03). * configs/lpcxpresso-lpc54628: Add a Twm4Nx configuration. From Gregory Nutt (2019-05-04). @@ -24166,7 +24167,7 @@ cannot affect the display content. Conversely, when the icon is clicked, the icon needs to be hidden on - the backgound and the window needs to be restored in its current state + the background and the window needs to be restored in its current state (which may be different than the state of the window at the time it was iconified. From Gregory Nutt (2019-05-05). @@ -24176,8 +24177,7 @@ * configs/nucleo-h743zi/include/board.h: Add the input clock frequency definitions for all the drivers. Assumes internal clock source for all the timers. From Jukka Laitinen (2019-05-05). - * arch/arm/src/stm32h7/Kconfig: fix warnings; - arch/arm/src/stm32h7/stm32_tim.c: don't use hardcoded UIF interrupt + * arch/arm/src/stm32h7/stm32_tim.c: don't use hardcoded UIF interrupt From Mateusz Szafoni (2019-05-06). * Add missing files of BMP180 example for nucleo-l476rg From Fabian Justi (2019-05-06). @@ -24204,7 +24204,7 @@ * Documentation/NXGraphicsSubsystem.html: Add documentation for new nx[tk]_modal() and nx[tk]_setvisibility() interfaces. From Gregory Nutt (2019-05-08). - * arch/arm/src/stm32f0l0: Initial ADC support and some improvemnets for + * arch/arm/src/stm32f0l0: Initial ADC support and some improvements for the STM32 M0 From Mateusz Szafoni (2019-05-09). * configs/b-l072z-lrwan1: add ADC example From Mateusz Szafoni (2019-05-09). * graphics/: Add new NX interfaces to query if a window is hidden or not. @@ -24218,7 +24218,7 @@ * nrf24l01: don't block in read if file descriptor is O_NONBLOCK. Add support for "multicast" TX mode - no waiting for ACK (needs to be enabled with fcntl SETTXPAYLOADNOACK) From Leif Jakob (2019-05-11). - * libs/libnx/nxmu/: Add a few bad input parameter checks. + * libs/libnx/nxmu/: Add a few bad input parameter checks. configs/lpcxpresso-lpc54628/twm4nx/defconfig: Need to enable the NX library. From Gregory Nutt (2019-05-12). * libs/libnx/nxglib/nxglib_intersecting.c: Correct bogus logic in @@ -24253,7 +24253,7 @@ calling exit() conditionally when, for example, Ctrl-C is sent to a task. The abnormal termination handler must obey the rules of cancellation points: If cancelation is disabled, then the abnormal - termintion logic must wait for cancelation to be re-enabled; If + termination logic must wait for cancelation to be re-enabled; If cancellation is deffered then the abnormal termination logic may have to wait for the victim task to enter or exit a cancellation point. From Gregory Nutt (2019-05-17). diff --git a/ReleaseNotes b/ReleaseNotes index 15f9460319..2bca098e94 100644 --- a/ReleaseNotes +++ b/ReleaseNotes @@ -22881,3 +22881,613 @@ detailed bugfix information): - apps/tools/mksymtab.sh: 'export LC_ALL=C' to get the traditional sort order From anchao. + +NuttX-7.30 Release Notes +------------------------ + +The 130th release of NuttX, Version 7.30, was made on May 19, 2019, +and is available for download from the Bitbucket.org website. Note +that release consists of two tarballs: nuttx-7.30.tar.gz and +apps-7.30.tar.gz. These are available from: + + https://bitbucket.org/nuttx/nuttx/downloads + https://bitbucket.org/nuttx/apps/downloads + +Both may be needed (see the top-level nuttx/README.txt file for build +information). + +Additional new features and extended functionality: + + * Core OS: + + - pthreads: Added non-standard pthread_get_stackaddr_np() and + pthread_get_stacksize_np(). From Joao Matos. + - boardctl(): Add a command to start the VNC server. From Gregory + Nutt. + - Signals: Remove references to CONFIG_DISABLE_SIGNALS in many + files. Signals can no longer be disabled. From Gregory Nutt. + + * Wireless/Wireless Drivers: + + - NRF24L01: Add support for "multicast" TX mode - no waiting for ACK + (needs to be enabled with fcntl SETTXPAYLOADNOACK) From Leif Jakob. + + * Graphics/Display Drivers: + + - NX Graphics: Add new server->client callback to notify the window + client of server events. Remove the old 'blocked' callback and just + make it one case of an 'event' callback. From Gregory Nutt. + - NX Graphics: Implement new interfaces nx_synch() and nxtk_synch(). + This are used to synchronize the NX server with the window client. + Currently most of the logic is equivalent to nx_block() and + nxtk_block(), but with slightly different semantics. They are + separate now because they are likely to diverge in the future. + From Gregory Nutt. + - NX Graphics: Add support for modal windows. From Gregory Nutt. + - NX Graphics: Implement a software cursor. The cursor behaves + like a "sprite", always at the top of the display with a + transparent background. Includes new NX interfaces to show/hide + the cursor, set the cursor image, and to move the cursor position. + From Gregory Nutt. + - NX Graphics: Added support for hiding windows. This features is + needed by Twm4Nx: When a window is iconified, the icon should + appear on the background and the window should disappear (i.e., be + hidden). The windows needs to remain healthy and to be updated in + all ways, but it cannot affect the display content. Conversely, + when the icon is clicked, the icon needs to be hidden on the + background and the window needs to be restored in its current + state (which may be different than the state of the window at the + time it was iconified. From Gregory Nutt. + - NX Graphics: Windows can now be created in the hidden state. + This can be used to clean up initial window presentation which may + involve several steps. This makes those steps all invisible until + nx[tk]_setvisibility() is called to make the windows visible. + From Gregory Nutt. + - NX Graphics: Add new NX interfaces to query if a window is hidden + or not. From Gregory Nutt. + - NxTerm IOCTLs: Replace specific interfaces between boardctl and + nxterm with a generalized IOCTL interface. From Gregory Nutt. + - NxTerm: Add a new IOCTL that can be used to inform NxTerm that + the size of a window has changed. From Gregory Nutt. + + * Other Common Device Drivers: + + - CAN Upper Half: Support multiple readers of the same port From + Valmantas Paliksa. + - MAX7456: Adds a read-only (for now) /dev/osd0/CM interface for + obtaining the chip's onboard NVM character map data. Use seek() + to position the cursor over a desired subset of bytes, or request + a large read to obtain the entire EEPROM memory contents. Values + are returned in binary form. Use hexdump, etc. to format them for + viewing. From Bill Gatliff. + - Serial Upper Half: The upper half serial driver configuration + CONFIG_SERIAL_DMA used to enable DMA on both RX and TX streams. + This was replaced with CONFIG_SERIAL_RXDMA and CONFIG_SERIAKL_TXDMA + which will permit supporting DMA on only one or both streams. + From Gregory Nutt. + - FUSB303: Add FUSB303 driver From Juha Niskanen. + + * Microchip PIC32MZ Drivers: + + - PIC32MZ GPIO: Adds support for edge detect mode. Slew Rate was + also added for completeness. From Abdelatif Guettouche. + + * Microchip/Atmel SAMv7 Boards + + - SAME70-xplained: Add a configuration for test Twm4Nx using VNC. + From Gregory Nutt. + + * Microchip LPCxx Drivers: + + - LPC17xx Ethernet: Added support for KSZ8081RNA PHY to LPC17xx + Ethernet driver. From jjlange. + - LPC17xx Ethernet: Added support for Ethernet PHY ioctl() on + LPC17xx. From jjlange. + + * NXP i.MX RT: + + - .i.MXRT1020: Gets imx1020 family support started. It is pretty + similar, but subtly different, to 1050/60 (less PLLs, less GPIO + banks, differently numbered ports etc. etc.). + + Moved each of the imxrt family-specific files into its own + subdirectory to tidy things up a bit, and remove the vast majority + of ifdefs from the mainline code. + + From Dave Marples. + + * NXP LPC54xx Drivers + + - LPC54xx USB FS Host: Bring in the USB FS OHCI driver from LPC17. + This is a quick'n'dirty port from LPC17 that I hope finish + sometime later. Currently, it is missing hardware clocking setup + and is not even hooked into the build system yet. From Gregory + Nutt. + + * NXP LPC54xx Boards + + - LPCXpresso-LPC54628: Add a Twm4Nx configuration. From Gregory Nutt. + + * Sony CXD56xx + + - CXD56xx: Add initial CXD56xx chip driver sources. From Nobuto + Kobayashi. + + * Sony CXD56xx Spresense Board + + - Spresense: Add Spresense board support. This is not the full + Spresense BSP from Sony, only the barebones logic to present an + NSH console. From Nobuto Kobayashi. + + * STMicro STM32: + + - STM32F7 Clocking: Add support for using the HSE in bypass mode, + configured by board.h From Anthony Merlino. + - STM32F7 Clocking: Added support for TICKLESS mode. From Valmantas + Paliksa. + - STM32H7 Backup Domain: Add backup domain control registers. From + Jukka Laitinen. + - STM32H7 Clocking: Set the STM32H7 default HSI pre-divider to 4. + The I2C driver currently assumes HSI clock to be 16MHz. From Jukka + Laitinen. + - STM32H7 Memorymap.: Add the STM32H7 SYSTEM_UID and DEBUGMCU_BASE + register definitions. From Jukka Laitinen. + - STM32L071x: Add support for STM32L071x. From Mateusz Szafoni. + + * STMicro STM32 Drivers: + + - STM32 OTGHS Host: Allow vbus monitoring for the OTG_HS host + driver. From Jason Harris. + - STM32F0/L0 ADC: Initial ADC support for the STM32 M0 From Mateusz + Szafoni. + - STM32F0/LO I2C: Port STM32F7 I2C to STM32F0/L0, From Mateusz Szafoni. + - STM32F1 FLASH: As noted by Matias N, the FLASH base address used + was incorrect. It was using the address of the FLASH data, not + the address of the FLASH registers. From Gregory Nutt. + - STM32F3 I2C: Port STM32F7 I2C to STM32F3. From Mateusz Szafoni. + - STM32F7 Ethernet.c: Auto-generate Ethernet MAC address from + device unique ID. From Valmantas Paliksa. + - STM32F7 FLASH: Add flash block mapping support for progmem. From + Valmantas Paliksa. + - STM32F7 FMC: Updated stm32_fmc.h with more FMC definitions. From + Joao Matos. + - STM32F7 GPIO: Adds additional pin alternate function for SPI2. + From Anthony Merlino. + - STM32F7 PWM: Ported the PWM from F4 to F7. From Eduard Niesner. + - STM32F7 SDMMC: Support bypassing the input clock divider on the + SDMMC interface. This enables using the full clock speed provided + to the SDMMC interface with no dividing. From Anthony Merlino. + - STM32F7 SPI: Add SPI DMA threshold configuration. From Valmantas + Paliksa. + - STM32F7 UID: Add UID access. From Valmantas Paliksa. + - STM32F7 USB: USB High speed for STM32F7 series From Ramtin Amin. + - STM32H7 Ethernet: Add stm32h7 Ethernet driver. This is the + initial push for the Ethernet driver. The driver has been tested + to be working on a nucleo board. This is still WIP, it doesn't + for example do MAC filtering on HW level, but just receives all + Ethernet packets. From Jukka Laitinen. + - STM32H7 GPIO: Add the GPIO_ETH_RMII_RXD1 pinmap definition for + STM32H7. From Jukka Laitinen. + - STM32H7 SDMMC: Add STM32H7 SDMMC driver. It is mostly copied + from STM32F7, with modified register addresses and bits, and IDMA + dded. This is still WIP; it only works with IDMA. From Jukka + Laitinen. + - STM32H7 Timers: Add timer devices driver for STM32H7. This i + mostly a forklift from stm32f7 with some h7 specific + modifications. From Jukka Laitinen. + - STM32L4 USB FS Device: Add USB FS device support. From Juha + Niskanen. + - STM32L0 AES: Add support for AES for L0. From Mateusz Szafoni. + - STM32L0 RND: Add support for RND. From Mateusz Szafoni. + - STM32L0 HSI48: Add support for HS148 for L0. Move HSI48 enable + from stm32_usbdev.c to stm32xx_rcc.c From Mateusz Szafoni. + - STM32L4 HSI48: Port HSI48 from STM32F0/L0 From Juha Niskanen. + - STM32L4 CRS: Port CRS from STM32F0/L0 From Juha Niskanen. + + * STMicro STM32 Boards: + + - B-L072Z-LRWAN1: add ADC example From Mateusz Szafoni. + - B-L072Z-LRWAN1: Add nxlines_oled example (ssd1306). Add support + for the I2C tool From Mateusz Szafoni. + - Nucleo-144: Added STM32_RCC_DCKCFGR2_DSISRC definition to board.h. + From Joao Matos. + - Nucleo-144: Mount sysfs for ifconfig for f767-netnsh/defconfig. + Even if ifconfig is working to set IP, it will not work to display + NICs (without args) From Phil Coval. + - Nucleo-144: Add basic PWM support to nucleo-144 board. More PWMs + and multi channels support may be investigated and added later. + Tested on Nucleo-F767ZI. From Phil Coval. + - Nucleo-F303ZE: Add nxlines_oled example (ssd1306) From Mateusz + Szafoni. + - Nucleo-H743ZI: Enable the FPU. From Jason Harris. + - Nucleo-H743ZI: Add support for I2C devices: ssd1306, pca9635, + i2ctools From Mateusz Szafoni. + - Nucleo-H743ZI: Add default clock configuration for SDMMC for + Nucleo-H743ZI's board.h. From Jukka Laitinen. + - Nucleo-H743ZI: Add the input clock frequency definitions in + board.h for all the drivers. Assumes internal clock source for + all the timers. From Jukka Laitinen. + - STM32F4 Discovery: Keep c++ global constructor symbols From + Masayuki Ishikawa. + - Nucleo-L073RZ: Add MFRC522 support From Mateusz Szafoni. + - OmnibusF4: Add boardctl() reset logic. From Bill Gatliff. + - OmnibusF4: Add board_ioctl() which is needed only if + CONFIG_BOARDCTL_IOCTL=y is selected; Update NSH configuration + to enable board IOCTLs and DFU mode reset. From Bill Gatliff. + - STM32L Discovery: Add support for board_late_initialize(), Move + common initialization logic out of board_app_initialize() into new + file stm32_bringup.c From Gregory Nutt. + - STM32F103-Minimum: Add PROCFS automount support From Alan + Carvalho de Assis. + + * Libraries/Header Files: + + - include/alloca.h: Add alloca.h. Included limited implementation + of alloc() that is only available for GCC versions 3 and above. + From Joao Matos. + - include/cxx/cstdlib: Add std::random() From Gregory Nutt. + + * apps/ General: + + - Many locations: Remove references to CONFIG_DISABLE_SIGNALS. + Signals can no longer be disabled. From Gregory Nutt. + + * Examples/Tests: apps/examples: + + - apps/examples/fb: Add some awareness of overlays to + apps/examples/fb From Matthew Koch. + - apps/examples/lvgldemo. Update to Littlevgl 5.3. From Matthew + Koch. + - apps/examples/pwfb: Extend example to verify software cursors. + From Gregory Nutt. + - apps/examples/pwfb: Add options to reduce the number of windows. + This is helpful during debug to reduce the complexity. From + Gregory Nutt. + + * Network Utilities: apps/netutils: + + - apps/netutils/cjson: Support for the current version of cJSON. + From Mateusz Szafoni. + - apps/netutils/libcurl4nx: This is an initial commit libcurl4nx. + It is not complete yet, but I still wish to commit the unfinished + bits to describe the roadmap, and because it is already usable. It + will be updated and fixed in the future weeks and months, certainly + including POST support and later, SSL. From Sebastien Lorquet. + - apps/netutils/netinit. This commit removes the private network + initialization logic from NSH and puts in a common location at + apps/netutils/netinit. Now that netork initialization logic can be + used by applications that do not include NSH. From Gregory Nutt. + - apps/netutils/netlib: Add a more flexible version of + netlib_parsehttpurl(). This one can parse any URL, and is + extensible so future improvements keep the same API. From Sebastien + Lorquet. + + * System Utilities: apps/system + + - apps/system/spi: I needed a small test tool for spi in the style of + the I2C tool, but I didn't see one so I've hacked one out of the I2C + tool source. From Dave Marples. + + * Graphics: apps/graphics: + + - apps/graphics/twm4nx. This release introduces Twm4Nx. Twm4Nx is a + "port" of TWM, Tab Window Manager (or Tom's Window Manager) version + 1.0.10 to NuttX NX windows server. No, a port is not the right + word. It is are-design of TWM from the inside out to work with the + NuttX NX server and NXWidgets. The name Twm4Nx reflects this + legacy. But Twm4Nx is more a homage to TWM than a port of TWM. + + The original TWM was based on X11 which provides a rich set of + features. TWM provided titlebars, shaped windows, several forms of + icon management, user-defined macro functions, click-to-type and + pointer-driven keyboard focus, graphic contexts, and user-specified + key and pointer button bindings, etc. + + Twm4Nx, on the other hand is based on the NuttX NX server which + provides comparatively minimal support. Additional drawing support + comes from the NuttX NxWidgets library (which necessitated a + conversion to C++). + + Twm4Nx is greatly stripped down and targeted on small embedded systems + with minimal resources. For example, no assumption is made about the + availability of a file system; no .twmrc file is used. + + The state of the "port" is available in + apps/graphics/twm4mx/README.txt. To summarize: The port is fully + functional but probably only at an alpha release level. The only + missing critical feature is built-in touchscreen calibration. + + - apps/graphics/littlevgl. Update to Littlevgl 5.3. From Matthew + Koch. + - apps/graphics/nxglyphs: Put all NxWidgets and NxWM glyphs into a + common directory where they can eventually be shared. Decouple + from nxwidgets and nxwm so that they can be used elsewhere. + Creates include/graphics/nxglyphs.h From Gregory Nutt. + - apps/graphics/nxglyphs: Add some new cursor bitmap images. From + Gregory Nutt. + - apps/graphics/nxglyphs: Add mkcursor.c. Will auto-generate + cursor image header file from Gimp C output. From Gregory Nutt. + - apps/graphics/nxglyphs: Add 16x16 cursor images. 30x30 are kind + of large on small displays. From Gregory Nutt. + - apps/graphics/nxglyphs: Add a new resize cursor image. From + Gregory Nutt. + - apps/graphics/nxwm: Separate NxWidgets and NxWM into separate + directories. Remove old, common NxWidgets directory. From + Gregory Nutt. + - apps/graphics/nxwm: Move the NxWM unit test main() to apps/nxwm. + It is no longer a unit test, but the main startup entry point for + NxWM. From Gregory Nutt. + - apps/graphics/nxwidgets: Update NX window clients so that they + use the new 'event' callback (vs. the obsoleted 'blocked' callback). + From Gregory Nutt. + - apps/graphics/nxwidgets: Add a synchronize method to every window. + This is a wrapper arounc nx[tk]_sync and permits C++ applications + to synchronize with the NX server. From Gregory Nutt. + - apps/graphics/nxwidgets: Add support for modal windows. From + Gregory Nutt. + - apps/graphics/nxwidgets: Add cursor control methods to the + CNxServer class. From Gregory Nutt. + - apps/graphics/nxwidgets: Add a method to CButtonArray that will + allow us to dynamically resize the array (at the cost of losing all + button labels). From Gregory Nutt. + - apps/graphics/nxwidgets: Fix a possible deadlock condition when + waiting for window geometry data that will never come. Fixed by + re-requesting geometry data if we don't already have it. From + Gregory Nutt. + - apps/graphics/nxwidgets: Add handshake to + CWidgetControl::getWindowHandle() to avoid returning a NULL + handle. From Gregory Nutt. + - apps/graphics/nxwidgets: CNxTkWindow, CNxWindow, CNxServer: Add + support to create RAM backed windows. From Gregory Nutt. + - apps/graphics/nxwidgets: Add methods to all windows to query if a + window is visible or hidden. From Gregory Nutt. + +Bugfixes. Only the most critical bugfixes are listed here (see the +ChangeLog for the complete list of bugfixes and for additional, more +detailed bugfix information): + + * Core OS: + + - Clock Initialization: A recent change broke Tickless mode for all + architectures. The original change was intended to handle the + case where up_timer_gettime may not start from zero case. The + side effect is that this changed to order of initialization of + clocking, breaking Tickless mode:: After this change the tickless + timer structures are used before they are initialized in + clock_inittime(). The commit has been reverted. + - pthread Stack Attribute: Fixed pthread_attr_get/setstacksize + param type to size_t. From Joao Matos. + - Signals: The abnormal termination signal handler was just calling + exit() conditionally when, for example, Ctrl-C is sent to a task. + The abnormal termination handler must obey the rules of cancellation + points: If cancelation is disabled, then the abnormal termination + logic must wait for cancelation to be re-enabled; If cancellation + is deferred then the abnormal termination logic may have to wait + for the victim task to enter or exit a cancellation point. From + Gregory Nutt. + - Syscall: Added support for munmap() syscall. From Joao Matos. + - Syscall: Fix a warning due to inconsistencies in return type in + syscall.csv. From Gregory Nutt. + - Syscall: Correct an error syscall.csv. Error occurred when + creating the munmap() proxy if CONFIG_FS_RAMMAP is not defined. + From Gregory Nutt. + + * File System/Block and MTD Drivers: + + - fs/littlefs/lfs.c: Fix lfs_format bug. In superblock disk root- + block assignment, the second must be root[1]. From YanLin Zhu. + + * Networking/Network Drivers: + + - getsockname(): Fix addrlen check in socket debug features. + Getsockname() checked erroneously a pointer agains 0, where the + intention was to dereference the pointer and to check the length. + This causes also a compilation failure if the code is compiled + with CONFIG_DEBUG_FEATURES and with -Werror flag set. From Jukka + Laitinen. + - Network Locking: net_lock() and net_restorelock() now return a + value. That values is the standard zero on success; negated errn + value on failure. This return value is only needed for + -ECANCELED. That cancellation indication needs to ripple all the + way back to the highest levels where the cancellation can be acted + on. This commit only adds the return value; it does not add + checking for the return values of net_lock() and net_restorelock() + at higher levels. That is required too. From Gregory Nutt. + - PHY Notification Driver: Change sprintf to strncpy in phy_notify. + On some platforms, the sprintf doesn't accept a const char* as a + format argument. From Jukka Laitinen. + - 6LoWPAN HC06: Correct an endian-ness problem in HC06 decompression. + From Ivan Ucherdzhiev. + + * Wireless/Wireless Drivers: + + - NRF24L01: Don't block in read if file descriptor is O_NONBLOCK. + From Leif Jakob. + + * Graphics/Display Drivers: + + - NX Graphics: Fix an error in coordinate system usage. Expected + rectangle in device coordinate frame, but was passing the + rectangle in window-relative coordinate frame. From Gregory Nutt. + - NX Graphics: Fix an oversight in the implementation of per-window + framebuffers. It is true that redraw callbacks can be suppressed + for all cases ... EXCEPT ONE: When the window is resized to a + larger size, then the newly exposed territory must be drawn for + the first time. From Gregory Nutt. + - NxTK: Fix an error in handling mouse events for framed windows. + When drawing, NX may report mouse positions outside of the Window. + The is only for NX windows, but the outside-the-side positions were + being discarded by nxtk_events(). From Gregory Nutt. + - NxTK: Refuse to open a toolbar of height zero or less. From + Gregory Nutt. + - Nxglib: Correct bogus logic in nxgl_interesting(). From Gregory + Nutt. + - VNC Server: Fix an error in color conversion. From Gregory Nutt. + + * Common Drivers: + + - APDS9960: Initial state of allocated structure was not being set. + Noted by Leif Jacob. From Gregory Nutt. + - MFRC522: In mfrc522_read uid.sak must be different from 0x04 not + as before from 0x00. SAK == 0x00 is a valid PICC type. Add + interface to read MIFARE Ultralight data From Mateusz Szafoni. + - Power: Fix build for battery gauge From Tom Kopriva. + - Syslog: In syslog buffered mode, avoid IOB alloc lock-up with + heavy network activity. This change alters the buffered syslog + logic to use 'iob_tryalloc' instead of blocking 'iob_alloc' to + avoid syslog printing from getting stuck when all IOBs are + depleted by network activity. An issue was seen when large + incoming TCP transfer uses free IOB buffers and processing + threads try to use syslog which then block at iob_alloc. From + Jussi Kivilinna. + - USB CDC/ACM Device: This fixes a problem where the host sent a + "get descriptor" message of type "standard" with a recipient of + type "interface". Since the composite driver would only pass + messages to the child interfaces when a message was not + "standard", this message was not handled. I changed the condition + so that the composite driver checks not only if this is a + "standard" message but if it is also directed to the device. + Otherwise, the handling is delegated to the children of the + composite device. From Matias N. + - USB HID: The usbhid_descriptor_s struct defined in hid.h included + some optional fields that should not be hard-defined as part of + that structure. An arbitrary number of optional entries could be + included in the descriptor, but that is not properly represented. + No code on NuttX currently depends on the structure definition + with an optional descriptor so it is safe to remove. From Matias N. + - USB MSC Device: Correct typo "const const" to "const". + arch/arm/src/stm32/stm32_i2s.c: In debug assertions, it on a + sample rate of 0, but based on other code comments this value + implies disabling the i2s master clock. From Jason Harris. + - Zerocross Driver: Fix some errors when debug assertions are + enabled. From Matous Pokorny. + - User Leds: Fix ledset validity check in ULEDIOC_SETALL ioctl. + From Jussi Kivilinna. + + * Architecture Common: + + - All board interfaces (those starting with board_) must be defined + in board-specific logic. Otherwise, they cannot be customized for + specialized usage by different boards. The board_reset() + interface was defined in architecture-specific logic that only + called up_systemreset(). That is useless! This change removes + the board_reset() implementation from the architecture-specific + code and re-implements it in the src/ directory of each board that + has CONFIG_BOARDCTL_RESET enabled. That is the correct functional + partitioning. From Gregory Nutt. + - Start-up: Remove dependency on CONFIG_ARCH_FPU for inclusion of + nvic.h in all other *_start.c files. From Gregory Nutt. + - Architecture initialization: up_initialize() needs to know about + ramlog_consoleinit() From Jason Harris. + + * Microchip PIC32MZ Drivers: + + - PIC32MZ GPIO: Corrects the gpioirq when mismatch mode is + selected. From Abdelatif Guettouche. + + * ARMv7-A: + + - ARMv7-A Build: Fix 'cc1: warning: switch -mcpu=cortex-a7 conflicts + with -march=armv7-a switch' From Xiang Xiao. + + * Nordic NRFxx + + - NRF52: Fix compiler error in nrf52832_errdata.c when following + C89. From Erik Englund. + + * STMicro STM32: + + - STM32 Configuration: It seems one option in the timer configuration + was lost at some point. From Matias N. + - STM32 start-up: Inclusion of nvic.h should not be conditioned on + CONFIG_ARCH_FPU. From Mateusz Szafoni. + - STM32H7 Clocking: Fixes for STM32H7 RCC definitions. From Jukka + Laitinen. + + * STMicro STM32 Drivers: + + - STM32F0/L USART: A few fixes for USART. From Mateusz Szafoni. + - STM32F1/F30 FLASH: RCC register access should not be offset by + FLASH register base. From Matias N. + - STM32F7 CAN: CAN fixes. From Valmantas Paliksa. + - STM32F7 I2C: I2C Interrupt storm fix. I2C track bad state. Now + we track bad state and so the SW reset only when it occurs. From + David Sidrane. + - STM32F7 OTG: Fixes some macros related to OTGFS/OTGHS preventing + OTGHS from working. From Anthony Merlino. + - STM32F7 OTG Device: Correct hard-coded FIFO size that is wrong + for OTG FS. From Ramtin Amin. + - STM32F7 QSPI: Fix QuadSPI interrupts. This commit essentially + replaces wrongly named configuration variable STM32F7_QSPI_INTERRUPTS + into CONFIG_STM32F7_QSPI_INTERRUPTS. Also fixes some getreg/ + putreg where register addresses were used instead of register + offsets From Pierre-Olivier Vauboin. + - STM32H7 I2C: Fix I2C4 compilation for STM32H7. From Jukka + Laitinen. + - STM32H7 UART: Fix compilation for UART7, UART8 and I2C4s. From + Jukka Laitinen. + - STM32L4 USB Device: Add missing PWR USBV enable, correct two USB + register bits From Juha Niskanen. + + * STMicro STM32 Boards: + + - STM32F103-Minimum: USB reset was not working appropriately since + the pin connected to D+ was incorrectly defined and the pullup/down + logic was reversed. From Matias N. + - Nucleo-l476RG: Fix some errors in GPIO logic when debug assertions + are enabled. From Matous Pokorny. + - Nucleo-L476RG: Add missing files of BMP180 example for Nucleo-L476RG. + From Fabian Justi. + - STM32F103-Minimum GPIO: Fix some errors when debug assertions are + enabled. From Matous Pokorny. + - STM32L4 PWM: Fix register addr, en_bit and resetbit for pwm timers. + From Fabian Justi. + - STM32F746G-DISCO: I2C1 config on stm32f746g-disco. Typo in + stm32f7/stm32_i2c.c From Matthew Koch. + + * C Library/Header Files: + + - include/limits.h: Remove the duplicate TMP_MAX definitions. The + standard requires that TMP_MAX defines be in stdio.h. From + Xiang Xiao. + - include/sys/select.h: Fix compiler error when + CONFIG_NSOCKET_DESCRIPTORS is undefined. From Xiang Xiao. + - include/signal.h: Add commented out definition of the si_addr + field. From Joao Matos. + - include/unistd.h: Fixed R_OK/X_OK definitions to match POSIX. + From Joao Matos. + + - libs/libc/locale: Improved error handling in setlocale(). From Joao + Matos. + - libs/libc: Fixed return code in uname(). From Joao Matos. + - libs/libc/stdio: Restore support for printing NULL string as + "(null)". Legacy printf supported printing "(null)" in place for + NULL string: printf("null: %s\n", NULL); => null: (null). This + commit restores this functionality for new printf library. From + Jussi Kivilinna. + + * Examples: apps/examples: + + - apps/examples/pca9635/pca9635_main.c: fix compilation error. From + Mateusz Szafoni. + + * Graphics Utilities: apps/graphics: + + - Various graphics apps (and apps/examples): If CONFIG_VNCSERVER=y, + don't call vnc_default_fbinitialize() directly. That is a violation + of the portable POSIX interface. Instead, call + boardctl(BOARDIOC_VNC_START);. From Gregory Nutt. + - apps/graphics/nxwidgets: CWidgetControl::handleLeftClick now + returns a value to indicate if the click was actually processed or + not. CWidgetControl::pollMouseEvents: Correct return value. From + Gregory Nutt. + - apps/graphics/nxwidgets/: NXWidgets::CNxWidgets: Fix some issues + with returned values. On setting the widget size or position, it was + returning false if there was no change in size or position. Many + places in the code were treating the false return value as an error. + From Gregory Nutt. + + * System Utilities: apps/system: + + - apps/system/nxplayer: Fix some logical errors from recent commits. + They broke the build of the nxplayer as a library vs. a task.