Versions Compared

Key

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

...

  1. Major Changes to Core OS
    1. Bugfixes
      • nxsem_wait_uninterruptible() now returns if the task is canceled.
      • Fix a bug in pthread_condwait() that was improperly re-initializing the mutex.
      • In sched_setpriority(), fix functions called inside a DEBUGASSERT that were eliminated when assertions are disabled.
  2. Compatibility Concerns
    • The configuration option CONFIG_CAN_PASS_STRUCT is now removed.  Previously, it was used (at the cost of breaking standards support) to support older versions of the SDCC compiler that couldn't pass structs/unions as functions' parameters.  A newer version of the compiler has resolved the issue.
  3. Major Changes to Build System
    • Add a post-build function that allows extending the build with CPU/board-specific logic.
    • Add build tools to simplify ZDS-II tool usage.
    • mkexport.sh: Deal with ARCHSCRIPT containing multiple files.
    • Various nxstyle improvements.
  4. Architectural Support
    1. New architecture support
      • Add support for RISCV-64
      • Add support for x86_64 (tested on QEMU)
      • Add support for ELF64
      • nucleo-f429zi portAdd a port to the NUCLEO-F429ZI board
      • z20x eZ80 board support and bootloader
      • New architectural support: ez80f92
      • Flat address x86_64 port of Nuttx
      • Support to run NuttX on ESP32 QEMU
      • Initial support for Sipeed Maix Bit board with Kendryte K210 processor
      • Add initial support for Kendryte K210 processor in SMP mode
      • NXP S32K11x (Cortex-M0+) and S32K14x (Cortext-M4F): Add support for NXP automotive boards.
      • XMC 4700 (Cortex-M4F)
    2. Architectures with significant improvements
      • ESP32 loadable modules support 
      • i.MX RT: FLEXIO clock config logic. 
      • Fix the clock configuration for the i.MX RT family
      • i.MX RT: Add ability to run from OCRAM 
      • SAMA5D27 peripheral support - USB Host working 
      • z20x: Add W25 bootloader
      • i.MX RT: Add USB Device support
      • STM32, STM32F7, STM32H7 add SPI DMATHRESHOLD
      • Improve the simulator timer
      • 64-bit modules on macOS simulator
      • z20x: Add XTP2046 SPI support; add timer support
      • RX65N RTC Driver added
      • NXP Freedom K28F Board SD-Card support
      • STM32H7: support SDRAM via FMC peripheral
      • LM3S6965-ek: Add PROTECTED build support
      • STM32H7: Added IWDG and WWDG, power management (sleep/stop/standby), WKUP pin configuration
      • SAMV71:  Add read UID implementation and move flash functions to RAM
      • i.MX RT: Fix interrupts storm (serial & I2C)
      • Various fixes and cosmetic changes to the CxD56xx architecture
      • Fix SiFive FE310 related code (comments, improve serial irq handling, initial int status)
      • Implement QSPI for STM32H7
      • Improvements for the nRF52 port: I2C, SPI, GPIO support
      • Updates for LPC17xx/40xx serial
      • Adds basic support for Microchip SAM E54 Xplained Pro board
      • Adds an Ethernet driver for the SAME5x family (based on the SAMA5 GMAC driver)
      • Add CDC ECM Ethernet over USB 2.0 High Speed (tested on SAMA5D36-Xplained board)
      • Simulator: Reimplement simulator uart on top of serial driver framework
      • NXP S32K1XX peripheral clock fixes
      • Fix syscall stack alignment on armv7-m
      • Fix flash_erase(page) when page >= 256 for STM32L4 family
      • Add partial support for the NETLINK poll() operation.

      • Add serial DMA support for STM32F7

      • Add AM335x Clock Configuration

      • Add I2C support for AM335x

      • Add configuration to fine tune LPI2C Timeout for iMXRT

      • Add CAN support to AM335x

      • Add I2C support to STM32F0/L0/G0

      • Kinetis LPC SDCard improvements
      • Replace the busy polling with work_queue in the ethernet driver of simulator
      • Fix Xtensa's SMP support to follow same logic from other SMP archs
      • PIC32MZ: SPI transfers can be configured to use DMA.
      • PIC32MZ: Implement cache operations.
  5. Driver Support
    1. New drivers
      • New driver for the ADS7828 I2C analog to digital converter
      • driver/ioexpander: New driver for PCA9538 I2C I/O expander
      • New driver type for battery monitor ICs.
      • Driver for the BQ769x0 battery monitor IC.
      • Add Support for Quectel EC20 4G LTE Module USB CDC/ACM
      • Add QSPI-based Winbond NOR FLASH driver
    2. Drivers with significant improvements
      • Update all the drivers to check return value of nxsem_wait_uninterruptible().
      • MCP9844 shutdown mode support
      • fcntl: add O_CLOEXEC flag, add O_CLOEXEC/FD_CLOEXEC support
      • CDC-ECM Ethernet over USB 2.0 HS
      • smartfs improvements: Handling of duplicate sectors, support fsck to check and repair the smartfs file system, and recover SPI Flash from initial error state.
      • Various fixes for USBDEV driver: Remove unnecessary reset logic, fix descriptor type mismatch when dual speed is enabled, fix invalid/unsupported command processing, and fix string ID calculation.
      • Handle size zero in umm_malloc.c and umm_realloc.c, which causes a system freeze in kernel mode.
      • Fixed compilation issue with poll fds notification.
      • Report POLLHUP and POLLERR in 'revents' regardless the requested 'events' set.
  6. Networking
    • Telnet:  Fix/Refine CTRL+C to work on telnet
    • TCP:  Fix of faulty TCP sequence increments
    • netdb:  Fix netdb to query IPv4 and IPv6 addresses regardless the server address type
    • Netlink sockets may be set to non-blocking
    • Improve TUN and SLIP, refine Control+C Handling in Telnet
    • Sockets:  Add socket MSG_DONTWAIT support
    • Network Loopback Driver: Add a configuration option to control packet size
    • Network IOCTLs:  Add FIONBIO network IOCTL support
    • NFS: Support IPv4 and TCP
    • Sockets: Add IP and TCP socket options needed by iperf3
    • Netlink: Add support for asynchronous Netlink responses
    • TCP: Monitor TCP_POLL/TCP_NEWDATA/TCP_BACKLOG per the request like UDP counterpart
    • TCP: Minor design improvement to TCP delayed ACKs
    • DNS IPv4/IPv6 Dual Host Support: When IPv4/IPv6 Dual Stack is enabled, queries both types of addresses regardless of whether the DNS server is accessed via IPv4 or IPv6. As a result, getaddrinfo() may return a mixed (IPv4/IPv6) address list.
  7. Applications
    1. Improvements
      • Extend netutils and netinit to work with only Netlink sockets enabled
      • Add getprime program to check multi-thread performance
      • Improve zmodem send performance
      • Add simple HTS221, LSM303 and LSM6DSL examples
      • Improve to gs2200m wiki performance
      • Improve telnet server and enable it to listen on both IPv4 and IPv6
      • Improve ntpclient logic
      • Improve wapi to save configuration to file system
      • Improve wapi to skip associate if ssid is invalid
      • Improve cmd_nfsmount to use IPv4 and IPv6
      • Improve ostest for SMP and non-SMP configurations
      • Improve UDP to avoid using standard symbols
      • Improve dhcpd to include configurable timeout and retry count
    2. Bugfixes
      • Correct format when printing ARP tablet entries
      • Ensure /bin/ping and ping work at the same time
      • Correct backward conditional logic in dhcpd_leaseexpired()
      • Fix several problems on ftpd
      • Fix dhcpd issue reported on Issue #17
      • Fix sendmail example to run on a local SMTP server
      • Fix buffer overflow on netlib
      • Fix compile errors in loopback mode of the tcpblaster
      • Fix stack corruption in ELF task test
      • Fix errors in NoBlockRecv and BlockRecv tests of usrsocktest
      • Fix ipforward IP Header issue for IPv4
      • Fix wrongly swapped parity options of CU program
      • Fix slcd to avoid using priv->fd before initializing it
      • Fix (tcp, udp)blaster to build on macOS
      • Correct the buffer type of base64 program
  8. Security Issues Fixed in this Release
  9. Known Problems in this Release
  10. More Information
    • Where to find the release
    • How to clone git repository and list full changelog
    • How to contact the community
  11. Call to action: Invitation to get involved in Apache NuttX
    community and development!