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.
MCUXpresso IDE, Rev. 25.06.xx
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-RW612 |
RW610ETA2I, RW610HNA2I, RW610UKA2I, |
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.
memfault-firmware-sdk#
memfault-firmware-sdk
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 (see Supported services). The Connectivity Framework modules are located in the middleware\wireless\framework SDK folder.
Supported services#
FSCI - Framework Serial Communication Interface
FunctionLib - Common function library utilities
HWParameter - Hardware parameter management
LowPower - Low power mode management
ModuleInfo - Module information and versioning
NVS - Non-Volatile Storage
NVM - Non-Volatile Memory management
OtaSupport - Over-The-Air update support
SecLib_RNG - Security library and Random Number Generator
Sensors - Sensor abstraction layer
SFC - Smart Frequency Calibration
WorkQ - Work queue management
Supported platform#
KW45_MCXW71
KW47_MCXW72
MCXW23
RW61X
RT1060 and RT1170
i.MX RT595s
Advanced features supported on platforms#
KW45_MCXW71#
FRO32K with smart frequency calibration (see SFC)
Power down mode support (for evaluation only)
KW47_MCXW72#
FRO32K with smart frequency calibration (see SFC)
Power down mode support (for evaluation only)
Crystal 32M trimming with temperature
Debug module for NBU
Extended NBU support with SecLib and pseudo RNG support
wpa_supplicant-rtos#
NXP Wi-Fi WPA Supplicant
Wireless EdgeFast Bluetooth PAL#
For more information, see the MCUXpresso SDK EdgeFast Bluetooth Protocol Abstraction Layer User’s Guide.
Ethermind BT/BLE Stack#
nxp_bt_ble_stack
coreHTTP#
coreHTTP
NXP Wi-Fi#
The MCUXpresso SDK provides driver for NXP Wi-Fi external modules. The Wi-Fi driver is integrated with LWIP TCPIP stack and demonstrated with several network applications (iperf and AWS IoT).
For more information, see Getting Started with NXP based Wireless Modules and i.MX RT Platform Running on RTOS (document: UM11441).
USB Type-C PD Stack#
See the MCUXpresso SDK USB Type-C PD Stack User’s Guide (document MCUXSDKUSBPDUG) for more information
USB Host, Device, OTG Stack#
See the MCUXpresso SDK USB Stack User’s Guide (document MCUXSDKUSBSUG) for more information.
TinyCBOR#
Concise Binary Object Representation (CBOR) Library
TF-M#
Trusted Firmware - M Library
PSA Test Suite#
Arm Platform Security Architecture Test Suite
PKCS#11#
The PKCS#11 standard specifies an application programming interface (API), called “Cryptoki,” for devices that hold cryptographic information and perform cryptographic functions. Cryptoki follows a simple object based approach, addressing the goals of technology independence (any kind of device) and resource sharing (multiple applications accessing multiple devices), presenting to applications a common, logical view of the device called a “cryptographic token”.
NXP IoT Agent#
NXP IoT Agent
MCU Boot#
Open source MCU Bootloader.
mbedTLS#
mbedtls SSL/TLS library v3.x
mbedTLS#
mbedtls SSL/TLS library v2.x
lwIP#
The lwIP TCP/IP stack is pre-integrated with MCUXpresso SDK and runs on top of the MCUXpresso SDK Ethernet driver with Ethernet-capable devices/boards.
For details, see the lwIP TCPIP Stack and MCUXpresso SDK Integration User’s Guide (document MCUXSDKLWIPUG).
lwIP is a small independent implementation of the TCP/IP protocol suite.
LVGL#
LVGL Open Source Graphics Library
llhttp#
HTTP parser llhttp
LittleFS#
LittleFS filesystem stack
FreeMASTER#
FreeMASTER communication driver for 32-bit platforms.
File systemFatfs#
The FatFs file system is integrated with the MCUXpresso SDK and can be used to access either the SD card or the USB memory stick when the SD card driver or the USB Mass Storage Device class implementation is used.
cJSON#
Ultralightweight JSON parser in ANSI C
NXP PSA CRYPTO DRIVER#
PSA crypto driver for crypto library integration via driver wrappers
NXP ELS PKC#
ELS PKC crypto library
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 |
Known issues#
This section lists the known issues, limitations, and/or workarounds.
SDK does not fully support the MCUX Config Tool#
Currently, the pin/clock config files in the MCUXpresso SDK are not generated from the MCUXpresso Config Tool. As a result, there is an error reported during project import/clone from the SDK package. However, the Config Tool itself can work without any issue
Cloned project cannot build issue#
Some cloned projects cannot build due to missing dependent component configuration. To fix the issue, you must correct the configuration manually in the cloned project.
The failed projects include nbu_bb_bm, wifi_cli_over_ble_wu, and ncp_device.
Romapi_flexspi example not working#
The romapi_flexspi example fails to work with armgcc flash_debug target.
No UART simulated for hello_world_virtual_com#
No UART peripheral is simulated for hello_world_virtual_com after downloading.
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.
GPIO toggle operation not working on NCP SPI slave side with flash release build#
Due to IDE compile optimization for the flash release target, the GPIO toggle operation on the NCP SPI slave side to indicate RX DMA ready or slave to master transfer is not working. The issue occurs because the GPIO toggle time is too short for the host to detect it.
El2go_agent_demo_wifi issue#
The el2go_agent_demo_wifi project does not work on MCUXpresso for VSCode. However, Arm GCC standalone, MCUXpresso IDE, MDK, or IAR have no limitations.
Note: The above issue is not really a limitation of the SDK release, as it gets fixed by a toolchain update. The issue also partially applies to all other examples using TF-M.
When using MCUX IDE, do not specify a custom prefix or suffix while importing the example.
However, if it is a custom prefix or suffix is added, you must adapt the names of the library projects el2go_mbedtls_lib and el2go_tfm_psa_ns_lib in the el2go_agent_demo_wifi_ns project. To change the linker import paths to the right name, select Project settings > C/C++ Build > Settings > MCU linker > Miscellaneous > Other Objects.
Note: This limitation stays as it depends on the SDK generator fixes
Example mbedtls_benchmark may hang on some targets on devices with ELS acceleration#
Some targets of ELS accelerated devices may experience runtime issues when run with the default configuration of the mbedtls_benchmark application.
Examples: mbedtls_benchmark
Affected toolchains: All
The freertos_lpuart example does not complete successfully#
The example hangs after console output ‘FreeRTOS LPUART driver example’.
Examples: freertos_lpuart
Affected toolchains: All
The example does not perform as expected (Ticks do not printed on the console or the application does not wake up from the sleep mode).
Examples: freertos_tickless
Affected toolchains: All
TF-M secure and EL2GO examples incorrect path in “Download extra image” with iar and mdk IDEs with Kex package#
TF-M secure and EL2GO examples are missing the target path for ns binary in “extra download image” with iar and mdk IDEs
Examples: tfm_demo_s, tfm_psatest_s, tfm_regression_s, tfm_secureboot_s, el2go_agent_s, el2go_blob_test_s, el2go_import_blob_s, el2go_mqtt_demo_s Affected toolchains: mdk, iar Affected platforms: mcxn5xxevk, frdmmcxn947, mcxn9xxevk, rdrw612bga, frdmrw612 Workaround: There are two ways 1.) Flash secure and non secure bins via Jlink or SPSDK after the build with IDE and providing with correct paths of secure and non-secure binaries. or 2.) Add {target} debug/release in path of “Download extra image” for iar and for MDK in xxx_flashdownload.ini file.