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 is compiled and tested with these development tools:

  • MCUXpresso IDE, Rev. 24.12

  • IAR Embedded Workbench for Arm, version is 9.60.3

  • Keil MDK, version is 5.41

  • MCUXpresso for VS Code v24.12

  • GCC Arm Embedded Toolchain 13.2.1

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

MCX-N9XX-EVK

MCXN946VDF, MCXN946VKL, MCXN946VNL,
MCXN946VPB, MCXN947VDF, MCXN947VKL,
MCXN947VNL, MCXN947VPB

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.

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.

NXP Touch Library

NXP Touch Library

TinyCBOR

Concise Binary Object Representation (CBOR) Library

TF-M

Trusted Firmware - M Library

PSA Test Suite

Arm Platform Security Architecture Test Suite

Mbed Crypto

Mbed Crypto library

SDMMC stack

The SDMMC software is integrated with MCUXpresso SDK to support SD/MMC/SDIO standard specification. This also includes a host adapter layer for bare-metal/RTOS applications.

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

Multicore

Multicore Software Development Kit

Motor Control Software (ACIM, BLDC, PMSM)

Motor control examples.

MCU Boot

Open source MCU Bootloader.

mbedTLS

mbedtls SSL/TLS library v3.x

Voice Seeker (no AEC)

VoiceSeeker is a multi-microphone voice control audio front-end signal processing solution. VoiceSeeker is not featuring acoustic echo cancellation (AEC).

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.

eIQ

The package contains several example applications using the eIQ TensorFlow Lite for Microcontrollers library.

eIQ machine learning SDK containing:

  • Arm CMSIS-NN library (neural network kernels optimized for Cortex-M cores)

  • Inference engines:

    • TensorFlow Lite Micro

    • DeepView RT

  • Example code for TensorFlow Lite Micro, Glow, and DeepView RT

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.

emWin

The MCUXpresso SDK is pre-integrated with the SEGGER emWin GUI middleware. The AppWizard provides developers and designers with a flexible tool to create stunning user interface applications, without writing any code.

AWS IoT

Amazon Web Service (AWS) IoT Core SDK.

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.

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:

  • Max number of connections supported : 8

  • Potential instabilities particularly with short Connection Intervals

Channel Sounding (CS) not supported:

  • RTT with Random sequence

  • RTT Random sequence NADM

  • TX SNR

  • LE 2M 2BT PHY

  • More than one CS procedure in parallel

  • Potential instabilities with small CS offset or small subevent interval

  • TQI not accurate

Periodic Advertising with Responses (PAwR):

  • Incorrect data in Periodic Advertising Response is reported if AUX_SYNC_SUBEVENT_RSP contained an extended header.

  • Sync device cannot synchronize on more than 32 subevents.

  • 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.

Zigbee

  • OTA interruption is not resuming correctly (for example, when using a reset in the middle of the transfer).

  • Zigbee ZED RX OFF example application on FreeRTOS fails sometime.

  • Minor fixes and stability improvements for connectivity_test example application.

Flash ROMAPI

Note that:

  • If using ROM API for internal flash or SPI NOR operation, reserve RAM location 0x200030A0 - 0x200032CF (0x300030A0 - 0x300032CF).

  • If using kb API, reserve 0x20002000 - 0x200032FF (0x30002000 - 0x300032FF).

Other limitations

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

    • Power down on application power domain.

    • XTAL32K less board with FRO32K support.

    • FRO32K notifications callback is for debug only. Application shall not execute long processing (such as PRINTF) as it is executed in ISR context.

  • 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.

Examples hello_world_ns, secure_faults_ns, and secure_faults_trdc_ns have incorrect library path in GUI projects

When the affected examples are generated as GUI projects, the library linking the secure and non-secure worlds has an incorrect path set. This causes linking errors during project compilation.

Examples: hello_world_ns, hello_world_s, secure_faults_ns, secure_faults_s, secure_faults_trdc_ns, secure_faults_trdc_s

Affected toolchains: mdk, iar

Workaround: In the IDE project settings for the non-secure (_ns) project, find the linked library (named hello_world_s_CMSE_lib.o, or similar, depending on the example project) and replace the path to the library with <build_directory>/<secure_world_project_folder>/<IDE>/, replacing the subdirectory names with the build directory, the secure world project name, and IDE name.

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 iped example does not complete successfully

The iped example fails at multiple points.

Examples: iped

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.