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.
Currently, the new MCX W23 product does not natively support the IAR toolchain. This patch provides all the required files to your IAR Embedded Workbench installation, enabling you to build and debug MCX W23 SDK projects in the IDE. The following patch has been tested with IAR Embedded Workbench v9.60.4. IAR patch is distributed via https://mcuxpresso.nxp.com. Download the archive file iar_support_patch_mcxw23x_25_09_00.zip. Then, unzip the file and copy the content into your IAR folder structure (typically within C:/Program Files/IAR systems).
IAR Embedded Workbench for Arm, version is 9.60.4
Keil MDK, version is 5.42
MCUXpresso for VS Code v25.09
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 |
|---|---|
FRDM-MCXW23 |
MCXW235AIHNAR, MCXW235AIUKAR, MCXW235BIHNAR, |
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
CMSIS DSP Library
The MCUXpresso SDK is shipped with the standard CMSIS development pack, including the prebuilt libraries.
mbedTLS
mbedtls SSL/TLS library v3.x
TF-M
Trusted Firmware - M Library
PSA Test Suite
Arm Platform Security Architecture Test Suite
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.
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.
Bluetooth Synopsys Controller
Main features supported:
All roles that the Bluetooth specification specifies:
Broadcaster
Observer
Peripheral
Central
Up to 4 simultaneous connections supported
Bluetooth Low Energy features:
Device privacy and network privacy modes (version 5.0)
Advertising extension PDUs (version 5.0)
Anonymous device address type (version 5.0)
Up to 2 Mbps data rate (version 5.0)
Long range (version 5.0)
High-duty cycle, nonconnectable advertising (version 5.0)
Channel selection algorithm #2 (version 5.0)
High output power (version 5.0)
Advertising channel index (version 5.1)
Periodic advertising sync transfer (PAST) (version 5.1)
Supports LE power control feature (version 5.2)
Device filtering through programmable size white lists
Direct test mode
RF antenna: 50 Ω single-ended
RF receiver characteristics:
Sensitivity −94 dBm in Bluetooth Low Energy 2 Mbps
Sensitivity −97 dBm in Bluetooth Low Energy 1 Mbps
Sensitivity −100 dBm in Bluetooth Low Energy 500 kbps
Sensitivity −102 dBm in Bluetooth Low Energy 125 kbps
Accurate RSSI measurement with ±3 dB accuracy
Flexible RF transmitter level configurability:
TX mode 1 (TXM1): Range from −31 dBm to +2 dBm when VDD_RF exceeds 1.1 V
TX mode 2 (TXM2): Range from −28 dBm to +6 dBm when VDD_RF exceeds 1.7 V
LittleFS
LittleFS filesystem stack
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).
Bluetooth Synopsys controller
LE ping stops after feature exchange.
Connection drops as central after Connection Update from the slave.
Fixed state not correctly reset when terminating periodic advertising sync leading to hard fault.
Tx power is not changed in the database when the Tx power table changes.
Provide API to enable/disable Channel Assessment.
Debug HCI: Fix missed deferred HCI event logs.
Disable checking irq priorities against unused BLE_SLP_TMR_IRQ.
Fixed the wrong Local Resolvable Private Address in the LE Enhanced Connection Complete event.
Bluetooth LE
Common changes
Support for IAR toolchain added.
Support for OTA upgrade over external flash added.
Support for the MCXW235B SoC variant added.
SRAM placement updated - data placement now starts at
0x20004000instead of0x20008000.NVM storage integration improved - NVM operations are now performed when the radio is not active for enough time
Experimental support of mebdtls PSA. The feature can be enabled for testing purpose by setting
CONFIG_MCUX_COMPONENT_middleware.wireless.framework.seclib_rng_port.psa=y,CONFIG_MCUX_COMPONENT_component.psa_crypto_driver.casper=y,CONFIG_MCUX_COMPONENT_component.psa_crypto_driver.hashcrypt=yconfigs in the applicationprj.conffile.
Health Care IoT Reference design applications
Support for Keil toolchain added.
Fixed central application not retaining bonding information
Moved ENABLE_LOW_POWER flag to app_preinclude.h for the peripheral application
Bluetooth LE host stack and applications
Support for EATT Central/Peripheral applications.
Support for FSCI black box application.
Support for Beacon application.
HCI transport now uses the Connectivity Framework’s PLATFORM API implementation
Connectivity Framework
[Common] Added MDK compatibility for the errno framework header.
[OTA] Corrected definition of
gEepromParams_WriteAlignment_cflag for mcxw23[OTA] Enabled calling
OTA_GetImgState()prior toOTA_Initialize().[OTA] Removed
gUseInternalStorageLink_dlinker flag definition when external OTA storage is used.[mcxw23] Implemented missing
PLATFORM_OtaClearBootInterface()API.[mcxw23] Refactored fwk_platform.c to separate BLE-specific logic into fwk_platform_ble.c.
[mcxw23] Added support for OTA using external flash.
[mcxw23] Introduced
PLATFORM_GetRadioIdleDuration32K()to estimate time until next radio event.[mcxw23] Extended
CopyAndReboot()to support external flash OTA.[mcxw23] Implement
PLATFORM_IsExternalFlashBusy()API.[mcxw23] Implemented HCI interface using PLATFORM API as preliminary requirement for Zephyr enablement, introducing
PLATFORM_SendHciMessageAlt()alternative API.[mcxw23] Added experimental SecLib PSA support with additional configuration for MBEDTLS_ECP_C and MBEDTLS_BIGNUM_C.
Known issues
This section lists the known issues, limitations, and/or workarounds.
Limitations when creating a new FreeRTOS-based C/C++ project
Due to the missing component dependencies definition, there are several limitations when creating a new FreeRTOS-based C/C++ project in MCUXpresso IDE. When the FreeRTOS kernel component is selected (under Operating Systems/RTOS/Core menu), you must manually select the FreeRTOS cm33 non trustzone port component (under Middleware/RTOS menu) for projects without TrustZone. For FreeRTOS TrustZone projects creation, the support is not ready.
Wireless UART application – Bluetooth Low Energy advertising and connection loss issue
When using the Wireless UART application with default settings, functionality is as expected. However, the following issue occurs when the Bluetooth Low Energy advertising interval is set to 20 milliseconds and the connection interval is set to 7.5 milliseconds: After two devices establish a connection, the central device fails to start advertising to a third device after a button press. The HCI command to start advertising returns success, but the device does not transmit any advertising packets. Additionally, the supervision timeout causes the existing connection to drop unexpectedly.
Bluetooth Synopsys Controller
Stability observation during extended testing The llhwc_set_adv_param function shows unexpected behavior during extended sequences of link layer tests, typically after 1.5 hours of continuous execution without a hardware reset.
This rare behavior occurs only under specific test conditions.
The behavior relates to the extended advertising feature.
This behavior does not impact regular usage scenarios.
Faulty passive channel assessment behavior
Connection establishment fails when channel assessment finds only one suitable channel. However, the failure occurs rarely.
Channel assessment fails on connections with slave latency greater than zero.
Health care iot peripheral freestanding application creation issue
The CMakeList.txt file to ensure correct application files work with different health_care_iot_peripheral applications (bm/freertos/threadx). The project now includes a hciot_peripheral.cmake file that contains common application files. This modification creates problems when you build a freestanding application without the –bf option.
without –bf option:
The application related files are no longer part of the project creation. The project uses the files part of the repo
This can be resolved by using the –bf option.
with –bf option:
the application files are placed in the
directory and in the root project directory. And you will find 2x main.c (with different content), one in the project root and one in the directory. Only the version in the
directory is correct, and you can safely remove the main.c in the project root directory.
Compilation if failing in case of the threadx variant
Safety.c is present twice in the project. The version in the project root directory is the correct version, You need to remove the safety.c in the
directory. Together with the removal of the safety.c file in the
directory you also need to modify the /board_files.cmake and remove safety.c from the mcu_add_source() (line 110).
The MCUXpresso plugin for VS Code allows you to create a freestanding application that includes board files. Configure this feature in the MCUXpresso for VS Code settings.
