MCUXpresso SDK Release Notes

Overview

The MCUXpresso SDK is a comprehensive software enablement package designed to simplify and accelerate application development with Arm Cortex-M-based devices from NXP, including its general purpose, crossover and Bluetooth-enabled MCUs. MCUXpresso SW and Tools for DSC further extends the SDK support to current 32-bit Digital Signal Controllers. The MCUXpresso SDK includes production-grade software with integrated RTOS (optional), integrated enabling software technologies (stacks and middleware), reference software, and more.

In addition to working seamlessly with the MCUXpresso IDE, the MCUXpresso SDK also supports and provides example projects for various toolchains. The Development tools chapter in the associated Release Notes provides details about toolchain support for your board. Support for the MCUXpresso Config Tools allows easy cloning of existing SDK examples and demos, allowing users to leverage the existing software examples provided by the SDK for their own projects.

Underscoring our commitment to high quality, the MCUXpresso SDK is MISRA compliant and checked with Coverity static analysis tools. For details on MCUXpresso SDK, see MCUXpresso-SDK: Software Development Kit for MCUXpresso.

MCUXpresso SDK

As part of the MCUXpresso software and tools, MCUXpresso SDK is the evolution of Kinetis SDK, includes support for LPC, DSC,PN76, and i.MX System-on-Chip (SoC). The same drivers, APIs, and middleware are still available with support for Kinetis, LPC, DSC, and i.MX silicon. The MCUXpresso SDK adds support for the MCUXpresso IDE, an Eclipse-based toolchain that works with all MCUXpresso SDKs. Easily import your SDK into the new toolchain to access to all of the available components, examples, and demos for your target silicon. In addition to the MCUXpresso IDE, support for the MCUXpresso Config Tools allows easy cloning of existing SDK examples and demos, allowing users to leverage the existing software examples provided by the SDK for their own projects.

In order to maintain compatibility with legacy Freescale code, the filenames and source code in MCUXpresso SDK containing the legacy Freescale prefix FSL has been left as is. The FSL prefix has been redefined as the NXP Foundation Software Library.

Development tools

The MCUXpresso SDK was tested with following development tools. Same versions or above are recommended.

  • IAR Embedded Workbench for Arm, version is 9.60.4

  • MCUXpresso IDE, Rev. 25.06.xx

  • MCUXpresso for VS Code v25.06

  • GCC Arm Embedded Toolchain 14.2.x

Supported development systems

This release supports board and devices listed in following table. The board and devices in bold were tested in this release.

Development boards

MCU devices

KW47-LOC

KW47B42ZB7AFTA

MCUXpresso SDK release package

The MCUXpresso SDK release package content is aligned with the silicon subfamily it supports. This includes the boards, CMSIS, devices, middleware, and RTOS support.

Device support

The device folder contains the whole software enablement available for the specific System-on-Chip (SoC) subfamily. This folder includes clock-specific implementation, device register header files, device register feature header files, and the system configuration source files. Included with the standard SoC support are folders containing peripheral drivers, toolchain support, and a standard debug console. The device-specific header files provide a direct access to the microcontroller peripheral registers. The device header file provides an overall SoC memory mapped register definition. The folder also includes the feature header file for each peripheral on the microcontroller. The toolchain folder contains the startup code and linker files for each supported toolchain. The startup code efficiently transfers the code execution to the main() function.

Board support

The boards folder provides the board-specific demo applications, driver examples, and middleware examples.

Demo application and other examples

The demo applications demonstrate the usage of the peripheral drivers to achieve a system level solution. Each demo application contains a readme file that describes the operation of the demo and required setup steps. The driver examples demonstrate the capabilities of the peripheral drivers. Each example implements a common use case to help demonstrate the driver functionality.

RTOS

FreeRTOS

Real-time operating system for microcontrollers from Amazon

Middleware

Wireless Bluetooth LE host stack and applications

The Bluetooth LE Host Stack component provides an implementation for a Bluetooth LE mandatory and some optional, proprietary, and experimental features. The Bluetooth LE Host Stack component provides application examples, services, and profiles.

Main features supported:

  • Automotive Compliance

  • MISRA Compliance

  • HIS CCM <= 20

  • Advanced Secure Mode

  • Enhanced ATT

  • GATT Caching

  • Bluetooth LE Host GCC Libraries

  • Bluetooth LE Host IAR Libraries

  • Bluetooth LE Host Peripheral Libraries

  • Bluetooth LE Central Libraries

  • Bluetooth LE Host Full Host Features Libraries

  • Bluetooth LE Host Optional Features Libraries

  • Bluetooth LE Host Mandatory Features Libraries

  • Bare-metal and FreeRTOS Support

  • Bluetooth LE Privacy Support

  • CCC Sample Applications

  • Enhanced Notifications

  • Dynamic Database

  • OTA Support - Sample Applications

  • Decision based Advertising Filtering (DBAF) - Experimental feature

  • Advertising Coding Selection (ACS) - Experimental feature

  • Channel Sounding - Experimental feature with controlled access (contact your NXP representative for access)

  • Bluetooth LE Controller main and experimental features and capabilities described below are supported by the Bluetooth LE Host.

    Note: For evaluating DBAF and ACS experimental features, replace the Bluetooth LE Host default example projects libraries with the libraries from the SDK folder ..\middleware\wireless\bluetooth\host\lib_exp and enable the features in the application. The Radio Subsystem (NBU) Firmware with experimental features is required.

Bluetooth LE Controller

  • Main features supported:

    • Peripheral Role

    • Central Role

    • Multiple PHYs (1 Mbps, 2 Mbps, Coded PHY)

    • Asymmetric Connections

    • Public/Random/Static Addresses

    • Network/Device Privacy Modes

    • Extended Advertising

    • Extended Scanning

    • Passive/Active Scanning

    • LE Encryption

    • LE Ping Procedure

    • HCI Test Interface

    • UART Test Interface

    • Randomized Advertising Channel Indexing

    • Sleep Clock Accuracy Update - Mechanism

    • ADI Field in Scan Response Data

    • HCI Support for Debug Keys in LE - Secure Connections

  • Main capabilities supported:

    • Simultaneous scanning 1 Mbps and Long Range

    • Scanning and advertising in parallel

    • 24 connections as a central role

    • 24 connections as a peripheral role

    • Any combination of central and peripheral roles (24 connections maximum)

    • 8 connections with a 7.5 ms connection interval

    • Two advertising sets in parallel (\Four adv set as Early Access Release).

    • 26 Accept List entries

    • 36 Resolvable Private Address (RPA) entries

    • Up to two Chain Packets per Extended Advertising set

    • Enhanced Notification on end of - Scanning/Advertising/Connection events

    • Connection event counters associated to Bluetooth LE packet reception

    • Timestamp associated to Bluetooth LE packet reception

    • RF channel info associated to Bluetooth LE packet reception

    • NXP proprietary Bluetooth LE Handover feature

    • Decision Based Advertising Filtering (DBAF)

    • Advertising Coding Selection (ACS)

    • Periodic Advertising with Responses (PAwR) Additional features supported for KW47 and MCX W72 devices:

    • Channel Sounding

      Note: Project configuration enabling Experimental features on KW45 and MCX W71 requires the Radio Subsystem (NBU) Firmware to be reprogrammed with the firmware provided in the SDK under \middleware\wireless\ble_controller\bin\experimental\. For NBU programming steps, see the EVK Quick Start Guide and Secure Provisioning SDK (SPSDK) documentation.

      Project configurations that require usage of the Bluetooth LE controller including all Bluetooth LE examples require the Radio Subsystem (NBU) Firmware to be re-programmed with the firmware provided in the SDK under middleware\wireless\ble_controller\bin.

Wireless XCVR

The XCVR component provides a base Transceiver Driver for the 2.4 GHz narrowband radio.

Wireless Connectivity Framework

The Connectivity Framework is a software component that provides hardware abstraction modules to the upper layer connectivity stacks and components. It also provides a list of services and APIs, such as, Low power, Over the Air (OTA) Firmware update, File System, Security, Sensors, Serial Connectivity Interface (FSCI), and others. The Connectivity Framework modules are located in the middleware\wireless\framework SDK folder.

Wireless Low-power reference design applications (central and peripheral)

The Low-Power Reference Design Applications provide reference design source code and projects showcasing how to implement optimized low power functionality based on a Bluetooth LE application. For additional details, see the readme.md.

CMSIS DSP Library

The MCUXpresso SDK is shipped with the standard CMSIS development pack, including the prebuilt libraries.

NXP PSA CRYPTO DRIVER

PSA crypto driver for crypto library integration via driver wrappers

EdgeLock SE050 Plug and Trust Middleware

Secure subsystem library - SSS APIs

Multicore

Multicore Software Development Kit

mbedTLS

mbedtls SSL/TLS library v3.x

mbedTLS

mbedtls SSL/TLS library v2.x

LittleFS

LittleFS filesystem stack

LIN Stack

LIN Stack middleware

FreeMASTER

FreeMASTER communication driver for 32-bit platforms.

Release contents

Provides an overview of the MCUXpresso SDK release package contents and locations.

Deliverable

Location

Boards

INSTALL_DIR/boards

Demo Applications

INSTALL_DIR/boards/<board_name>/demo_apps

Driver Examples

INSTALL_DIR/boards/<board_name>/driver_examples

eIQ examples

INSTALL_DIR/boards/<board_name>/eiq_examples

Board Project Template for MCUXpresso IDE NPW

INSTALL_DIR/boards/<board_name>/project_template

Driver, SoC header files, extension header files and feature header files, utilities

INSTALL_DIR/devices/<device_name>

CMSIS drivers

INSTALL_DIR/devices/<device_name>/cmsis_drivers

Peripheral drivers

INSTALL_DIR/devices/<device_name>/drivers

Toolchain linker files and startup code

INSTALL_DIR/devices/<device_name>/<toolchain_name>

Utilities such as debug console

INSTALL_DIR/devices/<device_name>/utilities

Device Project Template for MCUXpresso IDE NPW

INSTALL_DIR/devices/<device_name>/project_template

CMSIS Arm Cortex-M header files, DSP library source

INSTALL_DIR/CMSIS

Components and board device drivers

INSTALL_DIR/components

RTOS

INSTALL_DIR/rtos

Release Notes, Getting Started Document and other documents

INSTALL_DIR/docs

Tools such as shared cmake files

INSTALL_DIR/tools

Middleware

INSTALL_DIR/middleware

What is new

The following changes have been implemented compared to the previous SDK release version (25.06.00-pvw2).

  • Bluetooth LE Host Stack and Applications

    Added

    • Gap_SetBondedDeviceName() to set device name using NVM index.

    • RAS queue for GATT indications sent.

    • gHciStatusBase_c to csError status.

    • Option to use statically allocated memory for dynamic GATT database (prevents heap fragmentation).

    • Checks for controller supported features and setting PAST bits accordingly.

    • Anchor support to export device data via RAS using gAppHciDataLogExport_d = 2.

    • Anchor support to export device local HCI data using gAppHciDataLogExport_d = 1.

    • Shell commands to list peer devices and trigger connection handover.

    • Define for enabling optional CCC LE Coded PHY advertising.

    • cs_sync_phy parameter renamed to mDefaultRangeSettings (from outdated RTTPhy).

    Improved

    • Stack Host now saves the most recently set random address after successful controller response.

    • Miscellaneous minor application updates.

    Fixed

    • Compilation issue in loc_reader app with real-time RAS transfer.

    • CCC application handover state machine race condition.

    • CCC resets gCurrentAdvHandle upon connection.

    • RAS uses correct bit for data overwrite preference.

    Changed

    • Updated Bluetooth LE Host Documentation.

    • CS_ConfigVendorCommand updated with Inline Phase Return field.

    • Renamed tx_pwr_phy to phy and removed obsolete rtt_phy field.

    • Updated documentation to clarify Controller Privacy restrictions.

    • Details can be found in CHANGELOG.md.

  • Bluetooth LE controller

    • Channel Sounding fixes and stability improvements. New features: phase coherency (Channel Sounding) and four advertising set support (“Early Access Release” state).

  • Transceiver drivers (XCVR)

    • Added support for Bluetooth LE Channel Sounding

    • Added API to control PA ramp type and duration.

  • Connectivity framework

    • Major Changes

      • [wireless_mcu][wireless_nbu] Introduced PLATFORM_Get32KTimeStamp() API, available on platforms that support it.

      • [RNG] Switched to using a workqueue for scheduling seed generation tasks.

      • [Sensors] Integrated workqueue to trigger temperature readings on periodic timer expirations.

      • [wireless_nbu] Removed outdated configuration files from wireless_nbu/configs.

      • [SecLib_RNG][PSA] Added a PSA-compliant implementation for SecLib_RNG. ⚠️ This is an experimental feature and should be used with caution.

      • [wireless_mcu][wireless_nbu] Implemented PLATFORM_SendNBUXtal32MTrim() API to transmit XTAL32M trimming values to the NBU.

    • Minor Changes (no impact on application)

      • [MWS] Migrated the Mobile Wireless Standard (MWS) service to the public repository. This service manages coexistence between connectivity protocols such as BLE, 802.15.4, and GenFSK.

      • [HWParameter][NVM][SecLib_RNG][Sensors] Addressed various MISRA compliance issues across multiple modules.

      • [Sensors] Applied a filtering mechanism to temperature data measured by the application core before forwarding it to the NBU, improving data reliability.

      • [Common] Relocated the GetPowerOfTwoShift() function to a shared module for broader accessibility across components.

      • [RNG] Resolved inconsistencies in RNG behavior when using the fsl_adapter_rng HAL by aligning it with other API implementations.

      • [SecLib] Updated the AES CMAC block counter in AES_128_CMAC() and AES_128_CMAC_LsbFirstInput() to support data segments larger than 4KB.

      • [SecLib] Utilized sss_sscp_key_object_free() with kSSS_keyObjFree_KeysStoreDefragment to avoid key allocation failures.

      • [WorkQ] Increased workqueue stack size to accommodate RNG usage with mbedtls.

      • [wireless_mcu][ot] Suppressed chip revision transmission when operating with nbu_15_4.

      • [platform][mflash] Ensured proper address alignment for external flash reads in PLATFORM_ReadExternalFlash() when required by platform constraints.

      • [RNG] Corrected reseed flag behavior in RNG_GetPseudoRandomData() after reaching gRngMaxRequests_d threshold.

      • [platform][mflash] Fixed uninitialized variable issue in PLATFORM_ReadExternalFlash().

      • [platform][wireless_nbu] Fixed an issue on KW47 where PLATFORM_InitFro192M incorrectly reads IFR1 from a hardcoded flash address (0x48000), leading to unstable FRO192M trimming. The function is now conditionally compiled for KW45 only.

Details can be found in CHANGELOG.md

Known issues

This section lists the known issues, limitations, and/or workarounds.

Maximum file path length in Windows 7 operating system

The Windows 7 operating system imposes a 260-character maximum length for file paths. When installing the MCUXpresso SDK, place it in a directory close to the root to prevent file paths from exceeding the maximum character length specified by the Windows operating system. The recommended location is the C:\nxp folder.

Only FreeRTOS is tested for RTOS support

This release only supports the FreeRTOS kernel and a bare-metal non-preemptive task scheduler.

Bluetooth LE

Most sensor applications have pairing and bonding disabled to allow a faster interaction with mobile applications. These two security features can be enabled in the app_preinclude.h header file.

Bluetooth LE controller:

  • The maximum advertising data length is limited to 800 bytes.

  • Potential instabilities particularly with short Connection Intervals.

Periodic Advertising with Responses (PAwR):

  • Connection establishment using PAwR in LE Coded PHY can potentially fail.

  • Data report can potentially be truncated on the first AUX_ADV_IND of an extended advertising train containing an ACAD field.

  • Periodic Advertising with Response (PAwR) is not supported with the configuration “Subevent Interval = Number of Response Slots * Response Slot Spacing”.

KW45/MCXW71: No specific issues.

KW47/MCXW72: Channel Sounding (CS): Limitations:

  • RTT with sounding sequence not supported

  • RTT sounding sequence NADM not supported

  • TX SNR not supported

  • LE 2M 2BT PHY not supported

  • Maximum 2 Channel Sounding procedures supported in parallel. Known issues:

  • Potential instabilities with small CS offset or small subevent interval

  • Channel Sounding measurement performance at 2Mbps is affected by a sensitivity issue (shall be fixed in next release).

  • Link Layer is not able to trigger autonomous Feature Exchange procedure before initiating the Channel Sounding Capability Exchange procedure (shall be fixed in next release).

  • Link Layer does not properly manage collisions between Channel Sounding and other non-Channel Sounding procedures. This may lead to some LLCP timeout.

Other limitations

  • The following Connectivity Framework configurations are Experimental and not recommended for mass production:

    • Power down on application power domain.

  • A hardfault can be encountered when using fsl_component_mem_manager_light.c memory allocator and shutting down some unused RAM banks in low power. It is due to a wrong reinitialization of ECC RAM banks. To be sure not to reproduce the issue, gPlatformShutdownEccRamInLowPower should be set to 0.

  • GenFSK Connectivity_test application is not operational with Low Power enabled.

  • Serial manager is only supported on UART (not I2C nor SPI).

  • The --no-warn-rwx-segments cannot been recognized on legacy MCUXpresso IDE versions.

    The --no-warn-rwx-segments option in MCUXpresso projects should be manually removed from the project settings if someone needs to use legacy (< 11.8.0) MCUXpresso IDE versions

  • If the FRO32K is configured as the clock source of the CM33 Core then the debug session will block in both IAR, MCUX CMSIS-DAP while debugging. Use a lower debug wire speed, for example 1 MHz instead of the default one.

    In IAR, the option is in Runtime Checking -> Debugger -> CMSIS DAP -> Interface -> Interface speed.

    In MCUXpresso IDE, the option is in LinkServer Debugger -> Advanced Settings -> Wirespeed (Hz).

  • Low power reference design applications are not supported for the armgcc toolchain from zip archives. Please use MCUXpresso IDE or IAR toolchains for development using these applications.

Latest MCUX IDE 24.9.25 cannot support KW47 multicore compiling

The latest MCUX IDE 24.9.25 cannot support KW47 multicore compiling, users need to upgrade to the Linkserver_24.10.22 or higher version, and change the LinkServer path configuration in the MCUX IDE. Two ways to change the LinkerSever path in the MCUX IDE.

Option 1 (recommended): Using the custom Path

Option 2: Using the command-line to change the settings

  1. Close the MCUXpresso IDE if it is open.

  2. Execute the following command:

    <path_to_MCUXpressoIDE_installation_folder>\ide\mcuxpressoide -application com.nxp.mcuxpresso.headless.application -nosplash -run set.config.preference com.nxp.mcuxpresso.core.debug.support.linkserver:linkserver.path.default_path=<path_to_LinkServer_installation_folder>
    

    where:

    • <path_to_MCUXpressoIDE_installation_folder> is the folder where the MCUXpresso IDE is installed.

    • <path_to_LinkServer_installation_folder> is the folder where the new/custom LinkServer is installed.

Example:

C:\NXP\MCUXpressoIDE_24.9.25\ide\mcuxpressoide -application com.nxp.mcuxpresso.headless.application -nosplash -run set.config.preference com.nxp.mcuxpresso.core.debug.support.linkserver:linkserver.path.default_path=c:\NXP\LinkServer_24.10.15