Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Changed title from NuttX 9.2 to NuttX 10.0

Table of Contents

Work In Progress

Warning
titleWork In Progress
NuttX 9.2 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

Major changes to the internal, OS timer (wdog) interfaces.  The change includes:

...

  • Most drivers have a field in structure like WDOG_ID wdog;  That must be changed to struct wdog_s wdog;  That changes the field from a pointer to a struct wdog_s to the struct wdog_s storage itself.
  • Eliminate all calls to wd_create().   The WDOG_ID is not longer managed by the timing subsystem and the wd_create() interface has been removed.
  • The wd_delete() interface has also been removed, but more care will need to be exercised:  wd_delete() also cancels any running timer so, in many case, calls to wd_delete() should be replaced with calls to wd_cancel().  If you are certain that the timer has never been started, then you must remove the call to wd_delete() altogether.  Calling wd_cancel() with an un-initialized struct wdog_s instance may well cause a fatal crash.
  • Replace the first parameter of all remaining wdog function calls from.  For example, replace a call like ret = wd_cancel(priv->wdog) where priv->wdog was type WDOG_ID with the call ret = wd_cancel(&priv->wdog)where priv->wdog is now type struct wdog_s.

Bug Fixes

Major Changes to the Build System

New Features

Bug Fixes

Architectural Support

New Architecture Support

Driver Support

Bug Fixes

New Driver Support

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

In Apps, Change $(TOPDIR) to $(APPDIR)

In the 'apps' repo, Makefiles are now using $(APPDIR) instead of $(TOPDIR).

...

See PR-326, git commit # deaa6c5b7bf8445b4a300691525f60aa506be0d7 in the NuttX 'apps' repository.

Custom Boards Don't Need ARCHINCLUDES and ARCHXXINCLUDES Definitions

As part of an effort to unify support for uClibc++ and libc++, the C/C++ include search path definitions ARCHINCLUDES and ARCHXXINCLUDES are now defined in one central place in tools/Config.mk. It is no longer necessary to define these in every board's scripts/Make.defs. Boards included in the NuttX repository have been updated, but if you are building NuttX for a custom board and are using C++, you may want to make the following changes:

...

See also PR-1399, git commit #6abd03d53ff9164fb17ea4aca701a49fbbf751c0.

Custom Boards Don't Need HOSTCC and HOSTCFLAGS Definitions

The NuttX build system uses several binary utilities that it compiles and runs on the host computer. To build these binaries, it needs to know the host C compiler and C flags. Previously, every board's scripts/Make.defs file had to provide this information via HOSTCC and HOSTCFLAGS Definitions. As part of an effort to simplify the build system, these definitions are now automatically provided by logic in tools/Config.mk. Boards included in the NuttX repository have been updated, but if you are building NuttX for a custom board, you may want to make the following changes:

...

See PR-1398, git commit #ee875b2a260cb4cc532b8ca303c2515e24c39b4e in the main NuttX repository.

Removal of Unused ARCHCCVERSION and ARCHCCMAJOR

The ARCHCCVERSION and ARCHCCMAJOR variables are unused. Historically they were defined in many boards' scripts/Make.defs. These were removed from all boards in the NuttX repository, but if you are building NuttX for a custom board, you may want to remove this unnecessary boilerplate.

...

See PR-1344, git commit #f5311de6b42466ab5c6ef299dab0ecc417131bbe in the main NuttX repository.

Custom Boards May Not Need EXTRA_LIBS and EXTRA_LIBPATHS Definitions

The EXTRA_LIBS and EXTRA_LIBPATHS make variables were previously defined in many boards' scripts/Make.defs files. These are now defined in a more central location: arch/*/src/*/Toolchain.defs. Your board's scripts/Make.defs usually includes this file. Boards included in NuttX have been updated, but if you are building NuttX for a custom board, you may need to update your board's scripts/Make.defs file to ensure you build with the correct definitions.

...

See PR-1404, git commit #4910d43ab0fc360dbddb1f8a31db2a3ee383b46d in the main NuttX repository.

Custom Boards May Not Need CC, CXX, CPP, LD, STRIP, AR, NM, OBJCOPY, and OBJDUMP Definitions

These make variables were previously defined in many boards' scripts/Make.defs files with copy-paste duplication spanning many hundreds of files. These are now defined in a more central location: arch/*/src/*/Toolchain.defs. Your board's scripts/Make.defs usually includes this file. Boards included in NuttX have been updated, but if you are building NuttX for a custom board, you may need to update your board's scripts/Make.defs file to ensure you build with the correct definitions.

...

See PR-1426, git commit #b329e2377dd8816f37ad0408279926829efdf85d in the main NuttX repository.

Consolidated ARCROSSDEV and CROSSDEV

The ARCROSSDEV and CROSSDEV variables always had identical values. Therefore ARCROSSDEV has been removed and CROSSDEV is used instead. Boards included in NuttX have been updated, but if you are building NuttX for a custom board, you may need to update your board's build scripts to use the CROSSDEV variable.

See PR-1439, git commit #5efa93ec26fd8a3fd85b24a2008bb743f96027fb in the main NuttX repository.

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.

...

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.

...