Work In Progress

NuttX 10.1 has not been released yet. These Release Notes are a work-in-progress in preparation for the next release of NuttX.  There is a board tracking the PRs that need to be looked at to add to this doc for the OS TODO ADD LINK and for the Apps TODO ADD LINK

What's New In This Release

Major Changes to Core OS

New Features

Bug Fixes

Major Changes to the Build System

New Features

Bug Fixes

Simulator

New Features

Architectural Support

New Architecture Support

Driver Support

Bug Fixes

audio: Introduce a driver-specific spinlock to cxd56.c

audio: pcm_decode: add RAW format support

bluetooth: support HCI/L2CAP sockets, support HCI RAW channel

can: Add CAN FD flags to CAN header

leds: ws2812: make frequency selection more flexible

lcd: add optional putarea()/getarea() operations

pipes: nx_pipe syscall takes three params, also use nx_close

sensors: add common circular buffer management

sensors: add new feature about sensor driver model

sensors: add unified management for sensor

sensors: bmp280: convert to sensor interface (and minor sensor change)

sensors: driver model update

sensors: fakesensor support batch

sensors: support custom types of sensor

sensors: update l3gd20 sensor driver with new sensor driver model

syslog: Prepend Process ID to syslog message

wireless: bluetooth: add more hci event definitions

wireless: gs2200m: Add function to get IWNWID / IWFREQ / IWSENS information

wireless: gs2200m: Check disassociation from AP and enable rejoin


New Driver Support

audio: add simple wm8994 codec driver

audio: cxd56: add initial audio SRC implementation

analog: support for MAX1161X family of I2C 12 bit ADC chips

console: Add generic support to LWL Console

efuse: Add generic efuse driver for NuttX

lcd: Add LCD character driver: allows interacting with LCD directly from userspace

motor: add generic upper-half driver for Field Oriented Control (FOC)

rc: support infrared remote control

sensor: add fakesensor driver

sensors: Adds driver for hyt271 sensore module

sensors: Support fxos8700cq motion I2C sensor

usbdev: add Android Debug Bridge driver

Drivers With Significant Improvements

Board Support

Significant Improvements

New Board Support

Boards With Significant Improvements

File System

Bug Fixes

Significant Improvements

Networking

Applications

Improvements

Bug Fixes

Security Issues Fixed In This Release

Compatibility Concerns

Changes to Build System

Change CFLAGS, CPPFLAGS, CXXFLAGS, and AFLAGS from Recursive to Simple Assignment

PR-1890 (commit 2caf3a69e3d60ec550980f7ba897c732e7a39df7) attempts to speed up compilation time for concurrent builds by changing assignment to makefile variables CFLAGS, CPPFLAGS, CXXFLAGS, and AFLAGS from recursive (=) to simple (:=). This causes these compile options to be expanded only once during the build.

If you are using NuttX on a custom board not in the NuttX repository, you may want to make a similar change to your Make.defs files. Change these recursive assignments:

CFLAGS = $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) -pipe
CXXFLAGS = $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) -pipe
CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS)
AFLAGS = $(CFLAGS) -D__ASSEMBLY__

to simple assignments:

CFLAGS := $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) -pipe
CXXFLAGS := $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) -pipe
CPPFLAGS := $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS)
AFLAGS := $(CFLAGS) -D__ASSEMBLY__

Not Necessary to Define __NuttX__ in Make.defs

PR-2192 (commit 9208176f600d0d04446531909bf05710716a5ee4) refactors definition of the __NuttX__ preprocessor symbol to tools/Config.mk, so it is no longer necessary to define it in each board's Make.defs file.

If you are using NuttX on a custom board not in the NuttX repository, you may want to make a similar change to your Make.defs files.

Remove lines like this:

ARCHDEFINES = -D__NuttX__

Or remove -D__NuttX__ from lines like this:

CXXFLAGS += $(ARCHDEFINES) $(EXTRAFLAGS) -pipe -std=c++11 -D__NuttX__

Known Problems In This Release

More Information

How to Download

Release artifacts for all current and past NuttX releases can be downloaded at:

How to Clone the Git Repository

The Apache NuttX project uses Git SCM as its version control system.

There are two primary repositories:

The main "Single Source of Truth" repositories are hosted by the ASF:

These are synchronized with repositories hosted at GitHub:

How to Contact the Community

The main forum for project communication, to ask a question, get involved, or contribute to NuttX, is our mailing list, dev@nuttx.apache.org. The list is publicly archived and searchable at https://lists.apache.org/list.html?dev@nuttx.apache.orgFor more information, see NuttX Community.

Enthusiastic Contributors Welcome!

NuttX is a free open-source project. If you'd like to participate, whether it's to enhance documentation (even these release notes) or dive into the nitty gritty of some low-level drivers, please join us! You can join the conversation at our dev mailing list by emailing dev-subscribe@nuttx.apache.org. The mailing list is open to the public and archived. You can browse older messages at https://lists.apache.org/list.html?dev@nuttx.apache.org.