Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

PR-1264 sched/pthread: Prohibit the use of pthread_cleanup API's by kernel threads

Bug Fixes

PR-1911 init_section was not being emitted resulting in C++ static constructors not being called.

PR-1889 Fix build error for ::setbuf  if CONFIG_STDIO_DISABLE_BUFFERING is set

PR-1619 Fix inverted errno in mq_open

PR-1595 epoll_wait() must loop until "maxevents" to fille output evs array

PR-1519 libc: Replace index/rindex from macro to function to protect against side effects with conflicting local variables

PR-1514 Remove usage for user-space memalign() from kernel/driver code.  Instead use the proper kernel memory interface.

PR-1440 libc: Add the UUID libc functions

PR-1308 libc: Add support for _SC_NPROCESSORS_CONF/_SC_NPROCESSORS_ONLN to sysconf

PR-1305 libc: Implement WNOHANG for waitpid and waitid

PR-1237 libc: Add minimal support for locale_t operation:  suplocale, freelocale, newlocale, userlocale

PR-1317 sched/task: Unify task initialization

PR-1187 sched: Unify main thread and pthread behavior

Bug Fixes

PR-1911 init_section was not being emitted resulting in C++ static constructors not being called.

PR-1889 Fix build error for ::setbuf  if CONFIG_STDIO_DISABLE_BUFFERING is set

PR-1619 Fix inverted errno in mq_open

PR-1595 epoll_wait() must loop until "maxevents" to fille output evs array

PR-1519 libc: Replace index/rindex from macro to function to protect against side effects with conflicting local variables

PR-1514 Remove usage for user-space memalignPR-1512 / PR-1510 / PR-1507 Remove usage for user-space malloc()/zalloc()/free() from kernel/driver code.  Instead use the proper kernel memory interface.

PR-1496 libc: Change ctype macro to normal function to resolve macro evaluation side effects

PR-1512 / PR-1510 / PR-1507 Remove usage for user-space malloc()/zalloc()/free() from kernel/driver code.  Instead use the proper kernel memory interface.

PR-1496 libc: Change ctype macro to normal function to resolve macro evaluation side effects

PR-1463 libc: Replace all malloc/free with lib_malloc/lib_free inside libc

PR-1365 up_assert should not call exit() directly because it PR-1365 up_assert should not call exit() directly because it is only callable from userspace

...

PR-1254 libc: mkstemp only look at the trailing X's instead of the first X

Major Changes to the Build System

New Features

PR-1786 Support building external code into the OS

PR-1396 Make C/C++ search path common so all boards support uClibc++/libc++ automatically

Bug Fixes

PR-1713 Fix export target: libboard was missing KERNEL flag.

PR-1470 Fix Make.dep not updated by .config changes

PR-1345 Enhance export target: make BIN directory configurable, export post build script, use LDNAME instead of LDSCRIPT

PR-1332 Include incdir.c in the export target

Architectural Support

New Architecture Support

PR-1847 ARM: Initial support for ARMV6M to support CortexM0+

PR-1397: EOSS3: Initial support for the QuickLogic EOS S3 SoC

Architectures With Significant Improvements

cxd56xx

PR-1753 cxd56xx: Use spinlock in gpioint to improve SMP performance

PR-1650 cxd56xx: Use spinlock in rtc to improve SMP performance

PR-1621 cxd56xx: Use spinlock in serial to improve SMP performance

PR-1569 cxd56xx: Add SMP support to cxd56_farapi.c

PR-1689 cxd56xx: Use spinlock in uart to improve SMP performance

ESP32

PR-1422 ESP32: Add SPI driver (Master & Slave)

PR-1435 ESP32: Add I2C driver

PR-1491 ESP32: Add SPI Flash driver

PR-1525 ESP32: Add Ethernet driver

PR-1610 ESP32: Improve SPI transmision (DMA, IOMUX, software CS)

PR-1630 ESP32: Add support for HW RNG

PR-1830 ESP32: Add Power Management of Force-Sleep

PR-1859 ESP32: Add hist timer and improve the oneshot timer logic

PR-1754 ESP32: Add support for external SPIFLASH

PR-1613  ESP32: Add function for switching CPU from 80MHz to 240MHz

PR-1712 ESP32: Add support for external MMCSD card over SPI

IMXRT

PR-1868 IMXRT: Add ADC driver

Kinetis

PR-1624 Kinetis: USBHOST improvements to avoid race condition durring freeing for queue head structure by using Async Advance Doorbell.

PR-1516 Kinetis K28: Add support for USB High Speed Host

PR-1531 Kinetis K28: Add USB state change notifiers in notifier work queue

NRF52

PR-1418 NRF52: Add Timer and RTC drivers

PR-1432 NRF52: Add timer lowerhalf

PR-1635 NRF52: Add support for RTC event handling

PR-1636 NRF52: Add support for PPI peripheral

PR-1681 NRF52: Add support for GPIOTE task mode

PR-1726 NRF52: Extend systimer support

PR-1773 NRF52: Add ADC and PWM support

PR-1915 NRF52: Add serial termios support (no flow control)

PR-1907 NRF52: Add basic error handing for i2c in polling mode to support i2ctool.  Still not handled in DMA mode.

PR-1839 NRF52: Add missing SPI callback register hooks to support drivers like mmcsd

PR-1646 NRF52: Better differentiation between NRF52840 and NRF52832

PR-1685 NRF52: Add ARM system reset support.  Add UID support.

PR-1674 NRF52: Add LFCLK/HFCLK support for selecting oscillator sources.

RISCV

PR-1858 RISCV: Add missing CSR macros listed in RISC-V spec V1.10.

RX65N

PR-1622 RX65N: Add I2C(RIIC) support

PR-1894 RX65N: Add USB device support

PR-1899 RX65N: Add DTC driver

PR-1910 RX65N: Add SPI driver support

SAMD5E5

PR-1515 SAMD5E5: Add Watchdog timer support

PR-1574 SAMD5E5: Add USB host support

PR-1594 SAMD5E5: Freerun timer, oneshot timer and tickless support

PR-1816 SAMD5E5: Add MTD progmem support and NVM USER PAGE IOTCLs

SAMA5D2

PR-1412 SAMA5D27: Implement system reset to support nsh reboot command

PR-1393 SAMA5D2x: Implement SDMMC peripheral support

S32K

PR-1339 S32K: Extend FlexTimer support and add support for PWM

PR-1337 S32K: Allow FlexCAN to use to NETDEV_LATEINIT to handle the case where both FlexCAN and ENET are used

SIM

PR-1914 SIM: SIGUSR1 handling now uses NuttX interrupt logic

PR-1767 SIM: Allow access to tty interfaces for better termios support

PR-1655 SIM: Add support for Linux HCI Socket as a NuttX BLE adapter.  Full NuttX BLE stack can be run against any Linux Bluetooth adapter in sim.

PR-1558 SIM: Add support for Stack Smashing Protector.

PR-1392 SIM: Make uClibc++ and libcxx work on sim platform

STM32

PR-1865 STM32F4:  Add support for STM32F412CE fixing I2C2/I2C3 and USART1 alt

PR-1506 STM32: Add support for single wire UART push/pull mode

PR-1572 STM32F2/F4: Add options for I-Cache and D-Cache to be enabled/disable.  Previously they were always enabled.

PR-1287 STM32F7: Refactor the FMC driver to support STM32F7 family and add support to the STM32F46G-DISCO board

PR-1275 STM32: Allow SysTick to be a tickless clock source option

PR-1268 STM32: Add support for STM32F412 with UART / SPI / CAN / I2C / DMA

Bug Fixes

ARM

PR-1562 ARM: Save tcb-adj_stack_size should be saved without tls overhead

AVR

PR-1410 avr: Implement missing double_t type, CONFIG_STACK_ALIGNMENT, linker emulation flags

CXD56xx

PR-1930 cxd56xx: Fix handle_irqreq() in cxd56_cpupause.c

PR-1789 CXD56xx: Fix deadlock issue in up_txinit() in SMP mode.

PR-1620 cxd56xx: Fix IRQ control in cxd56_dmac.c

ESP32

PR-1908 ESP32: Fix task signal process preemption

IMXRT

PR-1527 IMXRT: Fix kconfig so that IMXRT_ENET_NRXBUFFERS can be set

Kinetis

PR-1273 Kinetis: Fix issue in ethernet driver where buffers were blindly initialized and could cause the TX of the MAC to be in a bad state.  Also resolves an issue with interrupts being throttled in the NVIC.

NRF52

PR-1928 NRF52: Fix PPI group disable and add group clear

PR-1885 NRF52: Fix SPI driver structures when SPI_EXCHANGE is not set

PR-1799 NRF52: Fix SPI_MASTER entry in kconfig

PR-1787 NRF52: Fix base address for SPIM{1,2,3}

PR-1777 NRF52: Handle case where rx or tx buffer could be 0 but data would still be transferred. Also error if more than max data is requested.

PR-1770 NRF52: Fix bug where SPI cmddata was not properly mapped for SPIM 0,2,3

RISC-V

PR-1909 RISC-V: MIE instead of MPIE register was being used in up_schedule_sigaction for storing interrupt state

SIM

PR-1903 SIM: Fix complication issue for WPCAP in Cygwin build

PR-1888 SIM: Fix EOVERFLOW returned when CONFIG_SIM_M32 is set

PR-1709 SIM: Fix up_cpu_start initialization for macOS with SMP enabled

STM32

PR-1841 STM32: Remove broken overdriver support

PR-1719 STM32: Lowputc: Ensure USART is disabled before attempting to configuring it

PR-1714 STM32H7: Fix I2C driver interrupt storm

PR-1556 STM32: Fix IO compentation support in STM32F7 and remove incorrect reference in STM32F0/L0/G0

PR-1529 STM32: Fix intialization bug in ADC that prevented adc_reset() from working correctly

PR-1561 STM32: Make sure that core over-drive is enable for all chips that support it and operating at 180MHz.  Some were enabled at 180MHz but may have not been stable without over-drive not configured.

PR-1544 STM32: Make sure IO compenstation cell is configured prior to call to rcc_enableperipherals() causing syscfg is accessed before it is enabled

PR-1380 STM32F7: Fix tickless driverw where th compare register could be set to a value that has just passed preventing expiration

STM32F7

PR-1898 STM32F7: Fixes data loss bug in UART5 with TX DMA

PR-1553 STM32F7: Fix possible interrupt blocking in serial TXDMA ISR

Miscellaneous

PR-1912 Fix up_interrupt_contex() in case of SMP - Make sure the operation is atomic in case of SMP

Driver Support

Bug Fixes

PR-1896 spi_xx25xx EEPROM: return the number of bytes written instead of 0 or error

PR-1891 serial: Don't mangle PID when ISIG is changed

PR-1856 pipe: In case of empty pipe with no writers, return EOF instead of EAGAIN

PR-1836 stmpe811: Fix incorrect GPIO interrupt register logic

PR-1741 mmcsd_sdio: Properly arm the write completion detection

PR-1370 can: Fix incorret usage of nxsem_getvalue which caused fifo->rx_sem to increase with teach received msg

New Driver Support

PR-1797 leds: WS2812 LED controller (aka Adafruit NeoPixel)

PR-1851 kbd: Add support for SolderParty BlackBerry Q10 Keyboard

PR-1618 BQ27426 fuel gauge

PR-1276 Add support for the ST7735 TFT Controller

Drivers With Significant Improvements

PR-1816 stmpe811: Add SPI support for touch screen controller

PR-1800 vfs: Add FIOCLEX/FIONCLEX ioctl support

PR-1798 mmcsd: Allow setting IDMODE_CLOCK via kconfig

PR-1587 BCH: Delay the sector flush to avoid multiple earse/write operations in sequence write

PR-1577 rwbuffer: Avoid allocating memory for the temporary erase buffer by the FTL driver

PR-1466 Altair Modem: Add board specific logic, Fix issue that SPI4 RX frequency violated AC Spec, Fix priority of SPI transfer task is too low, Modify timeout value for RX ready

PR-1471 ramlog: Add option to overwrite buffer

PR-1547 usbhub: Make sure to enumerate hubs that report protocol = 1 (High Speed Hub)

PR-1374 gpio: Extend gpio_pintype_e for pulldown/up and opendrain

Board Support

Significant Improvements

PR-1618 metro-m4: Add support for: SmartFS initialization, AT24 EEPROM, GPIO dev, BQ27426 gague initialization

PR-1727 b-g474e-dpow1: Add support for FLASH bootloader

PR-1683 cxd56xx: Add wifi_smp configuration

PR-1668 sim: Add new configuration for SMP

PR-1644 stm32f746g-disco: Move serial console from USART6 to USART1 which is attached to the USB virtual COM port.

PR-1464 cxd56xx: Add new GNSS functions, support for lower PWM frequency, CONFIG_CPUFREQ_RELEASE_LOCK, high speed ADC, HPADC input gain configuration, eMMC device, frame buffer support

PR-1405 stm32f4discovery: Add ELF support to wifi configuration

PR-1402 imxrt1060: Add buttons support to iMXRT1060

PR-1590 sim: Add duktape configuration

PR-1532 sim: Add cromfs configuration

New Board Support

PR-1664 NRF52: Add support for NRF52832 MakerDiary MDK board

PR-1633 NRF52: Add support for Sparkfun NRF52832 Breakout Board

PR-1728 SAMA5D27: Add support for Giant Board

PR-1397 EOSS3: Initial support for the QuickLogic EOS S3 SoC QuickFeather board

PR-1268 STM32: Add support for nucleo-f412zg board

File System

Bug Fixes

PR-1796 vfs: Fix memory leak calling pseudorename

PR-1794 vfs: Fix issue where opendir would remove the trailing whitespace or /

PR-1793 vfs: Make sure that rename of mount point uses pseudorename.  Previously mv on a mountpoint would return err 88.

PR-1737 vfs: reuse file_dup2 direction in file_dup to prevent segfault issue

PR-1490 Insure that filesystems can all support paths that end with '/'

PR-1546 ROMFS: Fix issue with how hard links are followed for ROMFS

Significant Improvements

PR-1554 CROMFS: Add support for hard links

PR-1499 FAT: Add support for UTF8 long filename

PR-1479 vfs: Add file descriptor based events support eventfd()

PR-1582 vfs: Add epoll_create1() support

PR-1579 vfs: Do not check CONFIG_NFILE_STREAMS for mkdir/rename/rmdir/fs_unlink

PR-1355 vfs: Implement statvfs and fstatvfs

Networking

Bug Fixes

PR-1267 SocketCAN: When timestamped frame was recived while in CAN2.0B mode the frame got dropped.

Significant Improvements

PR-1666 Bluetooth:  Bluetooth sockets now use Linux sockaddr types of sockaddr_l2 sockaddr_hci sockaddr_rc.  There are slight breaking changes here that may require applications to be updated, but this brings the interface inline with Linux.

PR-1581 Socket: Add SOCK_CLOEXEC/SOCK_NONBLOCK support

Applications

Significant Improvements

...

PR-1311 libc: Move double_t typedef from sys/types.h to math.h

PR-1328 Make sure that pthread_cleanup functions are only called from userspace

PR-1318 nxsched_release_tcb should release stack in kernel build, fixes memory leak

PR-2951 sched: Fix deadlock in nxtask_exit() for SMP

Major Changes to Documentation

PR-1763 Add quickstart documentation

PR-1677 Add simulator, drivers, and contributing instructions for new users

PR-1675 Add quickstart documentation from NuttX Companion

PR-1673 Update all the links in the documentation to point to nuttx.apache.org or the Apache NuttX wiki instead of old nuttx.org resources

PR-1501 Port all the existing documentation from HTML files to Sphinx based documentation along with a bunch of updates and improvments

PR-1433 Convert README documentation to Markdown

Major Changes to the Build System

New Features

PR-1786 Support building external code into the OS

PR-1396 Make C/C++ search path common so all boards support uClibc++/libc++ automatically

PR-1682 configure.sh can now list configurations with "-L" option

Bug Fixes

PR-1713 Fix export target: libboard was missing KERNEL flag.

PR-1470 Fix Make.dep not updated by .config changes

PR-1345 Enhance export target: make BIN directory configurable, export post build script, use LDNAME instead of LDSCRIPT

PR-1332 Include incdir.c in the export target

PR-1995 Fix issue where wrong extension was generated for mkconfig in WSL builds

PR-1949 Fix issue in make export where nuttx-names.dat was not being generated

PR-1682: Fix issue where windows style paths might not be handled correctly breaking Cygwin builds

Architectural Support

New Architecture Support

PR-1847 ARM: Initial support for ARMV6M to support CortexM0+

PR-1397: EOSS3: Initial support for the QuickLogic EOS S3 SoC

Architectures With Significant Improvements

cxd56xx

PR-1753 cxd56xx: Use spinlock in gpioint to improve SMP performance

PR-1650 cxd56xx: Use spinlock in rtc to improve SMP performance

PR-1621 cxd56xx: Use spinlock in serial to improve SMP performance

PR-1569 cxd56xx: Add SMP support to cxd56_farapi.c

PR-1689 cxd56xx: Use spinlock in uart to improve SMP performance

ESP32

PR-1422 ESP32: Add SPI driver (Master & Slave)

PR-1435 ESP32: Add I2C driver

PR-1491 ESP32: Add SPI Flash driver

PR-1525 ESP32: Add Ethernet driver

PR-1610 ESP32: Improve SPI transmision (DMA, IOMUX, software CS)

PR-1630 ESP32: Add support for HW RNG

PR-1830 ESP32: Add Power Management of Force-Sleep

PR-1859 ESP32: Add hist timer and improve the oneshot timer logic

PR-1754 ESP32: Add support for external SPIFLASH

PR-1613  ESP32: Add function for switching CPU from 80MHz to 240MHz

PR-1712 ESP32: Add support for external MMCSD card over SPI

IMXRT

PR-1868 IMXRT: Add ADC driver

Kinetis

PR-1624 Kinetis: USBHOST improvements to avoid race condition durring freeing for queue head structure by using Async Advance Doorbell.

PR-1516 Kinetis K28: Add support for USB High Speed Host

PR-1531 Kinetis K28: Add USB state change notifiers in notifier work queue

PR-1456 Kinetis K28: Reworked USB driver for setup out data phase


NRF52

PR-1418 NRF52: Add Timer and RTC drivers

PR-1432 NRF52: Add timer lowerhalf

PR-1635 NRF52: Add support for RTC event handling

PR-1636 NRF52: Add support for PPI peripheral

PR-1681 NRF52: Add support for GPIOTE task mode

PR-1726 NRF52: Extend systimer support

PR-1773 NRF52: Add ADC and PWM support

PR-1915 NRF52: Add serial termios support (no flow control)

PR-1907 NRF52: Add basic error handing for i2c in polling mode to support i2ctool.  Still not handled in DMA mode.

PR-1839 NRF52: Add missing SPI callback register hooks to support drivers like mmcsd

PR-1646 NRF52: Better differentiation between NRF52840 and NRF52832

PR-1685 NRF52: Add ARM system reset support.  Add UID support.

PR-1674 NRF52: Add LFCLK/HFCLK support for selecting oscillator sources.

RISCV

PR-1858 RISCV: Add missing CSR macros listed in RISC-V spec V1.10.

PR-1314 rv32im: Add schedulesigaction.c, SYS_save_context handling, skip ECALL instruction when calling up_swint()

RX65N

PR-1622 RX65N: Add I2C(RIIC) support

PR-1894 RX65N: Add USB device support

PR-1899 RX65N: Add DTC driver

PR-1910 RX65N: Add SPI driver support

SAMD5E5

PR-1515 SAMD5E5: Add Watchdog timer support

PR-1574 SAMD5E5: Add USB host support

PR-1594 SAMD5E5: Freerun timer, oneshot timer and tickless support

PR-1816 SAMD5E5: Add MTD progmem support and NVM USER PAGE IOTCLs

SAMA5D2

PR-1412 SAMA5D27: Implement system reset to support nsh reboot command

PR-1393 SAMA5D2x: Implement SDMMC peripheral support

S32K

PR-1339 S32K: Extend FlexTimer support and add support for PWM

PR-1337 S32K: Allow FlexCAN to use to NETDEV_LATEINIT to handle the case where both FlexCAN and ENET are used

SIM

PR-1914 SIM: SIGUSR1 handling now uses NuttX interrupt logic

PR-1767 SIM: Allow access to tty interfaces for better termios support

PR-1655 SIM: Add support for Linux HCI Socket as a NuttX BLE adapter.  Full NuttX BLE stack can be run against any Linux Bluetooth adapter in sim.

PR-1558 SIM: Add support for Stack Smashing Protector.

PR-1392 SIM: Make uClibc++ and libcxx work on sim platform

PR-1460 SIM: Call sched_note_cpu_* when scheduler instrumentation is enabled

STM32

PR-1865 STM32F4:  Add support for STM32F412CE fixing I2C2/I2C3 and USART1 alt

PR-1506 STM32: Add support for single wire UART push/pull mode

PR-1572 STM32F2/F4: Add options for I-Cache and D-Cache to be enabled/disable.  Previously they were always enabled.

PR-1287 STM32F7: Refactor the FMC driver to support STM32F7 family and add support to the STM32F46G-DISCO board

PR-1275 STM32: Allow SysTick to be a tickless clock source option

PR-1268 STM32: Add support for STM32F412 with UART / SPI / CAN / I2C / DMA

PR-1250 STM32L4: Add support for booting into DFU mode

Bug Fixes

ARM

PR-1562 ARM: Save tcb-adj_stack_size should be saved without tls overhead

PR-1900 ARM: Fix false reporting for stack usage for unaligned stacks

AVR

PR-1410 avr: Implement missing double_t type, CONFIG_STACK_ALIGNMENT, linker emulation flags

CXD56xx

PR-1930 cxd56xx: Fix handle_irqreq() in cxd56_cpupause.c

PR-1789 cxd56xx: Fix deadlock issue in up_txinit() in SMP mode.

PR-1620 cxd56xx: Fix IRQ control in cxd56_dmac.c

PR-1253 cxd56xx: Fix audio cxd56_stop where a deadlock could be hit if the worker thread took too long to turn on AMP

PR-1950 cxd56xx: Fix deadlock and tcb corruption in SMP mode

ESP32

PR-1908 ESP32: Fix task signal process preemption

PR-1941 ESP32: Fix interrupt clearing of edge interrupt due to issuing in masking interrupt state

IMXRT

PR-1527 IMXRT: Fix kconfig so that IMXRT_ENET_NRXBUFFERS can be set

PR-1455 IMXRT: Fix auto-negotiation for KSZ8081 PHY

Kinetis

PR-1273 Kinetis: Fix issue in ethernet driver where buffers were blindly initialized and could cause the TX of the MAC to be in a bad state.  Also resolves an issue with interrupts being throttled in the NVIC.

NRF52

PR-1928 NRF52: Fix PPI group disable and add group clear

PR-1885 NRF52: Fix SPI driver structures when SPI_EXCHANGE is not set

PR-1799 NRF52: Fix SPI_MASTER entry in kconfig

PR-1787 NRF52: Fix base address for SPIM{1,2,3}

PR-1777 NRF52: Handle case where rx or tx buffer could be 0 but data would still be transferred. Also error if more than max data is requested.

PR-1770 NRF52: Fix bug where SPI cmddata was not properly mapped for SPIM 0,2,3

RISC-V

PR-1909 RISC-V: MIE instead of MPIE register was being used in up_schedule_sigaction for storing interrupt state

SIM

PR-1903 SIM: Fix complication issue for WPCAP in Cygwin build

PR-1888 SIM: Fix EOVERFLOW returned when CONFIG_SIM_M32 is set

PR-1709 SIM: Fix up_cpu_start initialization for macOS with SMP enabled

STM32

PR-1898 STM32F7: Fixes data loss bug in UART5 with TX DMA

PR-1841 STM32: Remove broken overdriver support

PR-1719 STM32: Lowputc: Ensure USART is disabled before attempting to configuring it

PR-1714 STM32H7: Fix I2C driver interrupt storm

PR-1556 STM32: Fix IO compentation support in STM32F7 and remove incorrect reference in STM32F0/L0/G0

PR-1529 STM32: Fix intialization bug in ADC that prevented adc_reset() from working correctly

PR-1561 STM32: Make sure that core over-drive is enable for all chips that support it and operating at 180MHz.  Some were enabled at 180MHz but may have not been stable without over-drive not configured.

PR-1553 STM32F7: Fix possible interrupt blocking in serial TXDMA ISR

PR-1544 STM32: Make sure IO compenstation cell is configured prior to call to rcc_enableperipherals() causing syscfg is accessed before it is enabled

PR-1380 STM32F7: Fix tickless driverw where th compare register could be set to a value that has just passed preventing expiration

PR-1252 STM32L4: Fix 48MHz MSI clock seclection that could cause boot to hang

PR-1310 STM32L4: Configure flash wait states earier to prevent corruption of execution state

PR-1248 STM32L4: Fix oneshot timer so that a minimum period is set otherwise it will never be triggered.

PR-1247 STM32L47x/8x: Set additional registers require to place a pin in analog mode

PR-1246 STM32L4: Fix issue where clock divider for serial baud rate was not set correctly


Miscellaneous

PR-1912 Fix up_interrupt_contex() in case of SMP - Make sure the operation is atomic in case of SMP

Driver Support

Bug Fixes

PR-1896 spi_xx25xx EEPROM: return the number of bytes written instead of 0 or error

PR-1891 serial: Don't mangle PID when ISIG is changed

PR-1856 pipe: In case of empty pipe with no writers, return EOF instead of EAGAIN

PR-1836 stmpe811: Fix incorrect GPIO interrupt register logic

PR-1741 mmcsd_sdio: Properly arm the write completion detection

PR-1370 can: Fix incorret usage of nxsem_getvalue which caused fifo->rx_sem to increase with teach received msg

PR-1452 lcd: Fix memory leak when board_graphics_setup fail


New Driver Support

PR-1797 leds: WS2812 LED controller (aka Adafruit NeoPixel)

PR-1851 kbd: Add support for SolderParty BlackBerry Q10 Keyboard

PR-1618 BQ27426 fuel gauge

PR-1276 Add support for the ST7735 TFT Controller

PR-1233 usbhost: Add support for CDC-MBIM USB host driver

Drivers With Significant Improvements

PR-1816 stmpe811: Add SPI support for touch screen controller

PR-1800 vfs: Add FIOCLEX/FIONCLEX ioctl support

PR-1798 mmcsd: Allow setting IDMODE_CLOCK via kconfig

PR-1587 BCH: Delay the sector flush to avoid multiple earse/write operations in sequence write

PR-1577 rwbuffer: Avoid allocating memory for the temporary erase buffer by the FTL driver

PR-1466 Altair Modem: Add board specific logic, Fix issue that SPI4 RX frequency violated AC Spec, Fix priority of SPI transfer task is too low, Modify timeout value for RX ready

PR-1471 ramlog: Add option to overwrite buffer

PR-1547 usbhub: Make sure to enumerate hubs that report protocol = 1 (High Speed Hub)

PR-1374 gpio: Extend gpio_pintype_e for pulldown/up and opendrain

PR-1249 bmp280: Add support for reading temperature

PR-1299 mpu60x0: Add I2C support for the MPU60x0 sensor driver

PR-1325 can: expose NART/ABOM and RTR settings via ioctls

PR-1520 note: Move note driver from syslog to drivers/note

PR-1288 / PR-1449 note: Add sched_note_syscall_enter/leave hooks for syscall instrumentation

PR-1259 note:  Add buffering support for syscall instrumentation

PR-1256 note: Add hooks for note driver for interrupt instrumentation

Board Support

Significant Improvements

PR-1618 metro-m4: Add support for: SmartFS initialization, AT24 EEPROM, GPIO dev, BQ27426 gague initialization

PR-1727 b-g474e-dpow1: Add support for FLASH bootloader

PR-1683 cxd56xx: Add wifi_smp configuration

PR-1668 sim: Add new configuration for SMP

PR-1644 stm32f746g-disco: Move serial console from USART6 to USART1 which is attached to the USB virtual COM port.

PR-1464 cxd56xx: Add new GNSS functions, support for lower PWM frequency, CONFIG_CPUFREQ_RELEASE_LOCK, high speed ADC, HPADC input gain configuration, eMMC device, frame buffer support

PR-1405 stm32f4discovery: Add ELF support to wifi configuration

PR-1402 imxrt1060: Add buttons support to iMXRT1060

PR-1590 sim: Add duktape configuration

PR-1532 sim: Add cromfs configuration

PR-1335 cxd56xx: Enable basic snapshop camera example

New Board Support

PR-1664 NRF52: Add support for NRF52832 MakerDiary MDK board

PR-1633 NRF52: Add support for Sparkfun NRF52832 Breakout Board

PR-1728 SAMA5D27: Add support for Giant Board

PR-1397 EOSS3: Initial support for the QuickLogic EOS S3 SoC QuickFeather board

PR-1268 STM32: Add support for nucleo-f412zg board

File System

Bug Fixes

PR-1796 vfs: Fix memory leak calling pseudorename

PR-1794 vfs: Fix issue where opendir would remove the trailing whitespace or /

PR-1793 vfs: Make sure that rename of mount point uses pseudorename.  Previously mv on a mountpoint would return err 88.

PR-1737 vfs: reuse file_dup2 direction in file_dup to prevent segfault issue

PR-1490 Insure that filesystems can all support paths that end with '/'

PR-1546 ROMFS: Fix issue with how hard links are followed for ROMFS

PR-1442 SmartFS: Fix file size corruption when opening with overwriting mode

PR-1431 nxffs: Fix scan good block slowly and scan an invalid block

PR-1295 fs: for setfd correct the return value

Significant Improvements

PR-1554 CROMFS: Add support for hard links

PR-1499 FAT: Add support for UTF8 long filename

PR-1479 vfs: Add file descriptor based events support eventfd()

PR-1582 vfs: Add epoll_create1() support

PR-1579 vfs: Do not check CONFIG_NFILE_STREAMS for mkdir/rename/rmdir/fs_unlink

PR-1355 vfs: Implement statvfs and fstatvfs

PR-1323 vfs: Add chmod/fchmod/utimes function prototypes

Networking

Bug Fixes

PR-1267 SocketCAN: When timestamped frame was recived while in CAN2.0B mode the frame got dropped.

PR-1446 usrsock: Fix recv() cannot peek data

Significant Improvements

PR-1666 Bluetooth:  Bluetooth sockets now use Linux sockaddr types of sockaddr_l2 sockaddr_hci sockaddr_rc.  There are slight breaking changes here that may require applications to be updated, but this brings the interface inline with Linux.

PR-1581 Socket: Add SOCK_CLOEXEC/SOCK_NONBLOCK support

PR-1443 usrsock: Add flag argument to sendto/recvfrom interface in usrsock

PR-1238 SocketCAN: Add support for SocketCAN interface API


Applications

Significant Improvements

PR-409 wamr: Update version to 09-29-2020 that supports NuttX directly and remove patches

PR-407 ipcfg:  Add IPv4 configuration file access helper

PR-406 wamr: Add configs for heap pool and custom name sections

PR-404 timer: Add supplying timer dev path to example

PR-403 nxplayer/nxrecorder: Add channel map support

PR-396 wamr: Add missing options to kconfig

PR-395 dhcpc: Try to get hostname via syscall first

PR-391 wapi: Add option to assocated directly via bssid

PR-390 wapi: App option to scan partial channel

PR-387 wamr: Add support for WAMR web assembly interpreter

PR-337 docs: Convert all README files to markdown

PR-333 webclient: Add hooks for TLS, extra request headers, PUT method, report status code, improved error handling

PR-329 gpio: Add support for new GPIO pin types

PR-317 nshlib: Call symlink if user pass -s for ln command

PR-315 c++: Support uClibc++ and libcxx in examples/testing

PR-314 camera: Add a simple camera snapshot example

PR-378 wasm3: Initial WebAssembly runtime support

PR-374 bluetooth: Use the new l2cap socket address type

PR-373 duktape: Add duktape to global search path so it can be used as a library

PR-372 quickjs: Add support for QuickJS interpreter

PR-367 nsh: Accept the command line arguments like sh

PR-365 duktape: Add console, print, alert support

PR-364 cu:  Refactor cu and add support for "-c" to disable \n to \r\n conversion

PR-362 libuv: Add support for libuv library

PR-352 duktape: Add initial support for duktape

PR-346 wget: Enable URL from command line, can be used with ifup, hooks for HTTPS

PR-302 lvgl: Use the latest version 7.0.2

PR-300 note: Add support for decoding interrupt and syscall instrumentation

PR-299 nxrecorder: Add O_TRUNC when creating a file

PR-296 bmp280: Add support for BMP180 to BMP280 application

PR-294 can: Add cansend and candump utilities for interacting with SocketCAN

Bug Fixes

PR-411 wgetjson: Fix build breakage

PR-405 nxplayer: Fix missing "%d" in a sscanf call

PR-400 dhcpc: Handle case where gethostname() might be empty

PR-399 build: Fix build system issue where compiler would only compile first assembly file

PR-393 build: Fix build system issue where ARCHCPUFLAGS in cxx command was lost

PR-392 wapi: Make wapi more robust in failure cases

PR-383 ntpclient: Fix NTP daemon state in case of DNS failure

PR-344 gs2200m: Fix freeing of uninitialized memory

PR-335 ntp: Fix malformated authentication headers in NTP packet

PR-331 telnetd: Fix buffer overflow issue clearing socket address

PR-312 build: Make sure to include incdir when running make export

PR-377 readline: Fix stack overflow when application name is too long

PR-359 nshlib: Fix memory corrupt in nsh_parse if pthread_create() failed

PR-354 dhcpd: Fix member name for "ds_pid"






Security Issues Fixed In This Release

...