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

MIMXRT1040-EVK

MIMXRT1041DFP6B, MIMXRT1041DJM6B, MIMXRT1041XFP5B,
MIMXRT1041XJM5B, MIMXRT1042DFP6B, MIMXRT1042DJM6B,
MIMXRT1042XFP5B, MIMXRT1042XJM5B

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.

MCU Boot

MCU Boot (formerly KBOOT) NXP/Freescale proprietary loader

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

Simple Open EtherCAT Master

Simple Open EtherCAT Master (SOEM) is an open source EtherCAT master stack that is used to write custom EtherCAT Master applications. For more information on how to use SOEM, see the Getting Started with MCUXpresso SDK for SOEM document.

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.

PNG decoder

An ‘embedded-friendly’ PNG image decoding library.

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

Openh264

H.264 Codec Library

MCU Boot

Open source MCU Bootloader.

mbedTLS

mbedtls SSL/TLS library v2.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).

Voice intelligent technology library

Voice Intelligent Technology (VIT) Library provides wake word and voice command engine for voice control

Audio Voice components

Audio Voice components for MCU

Maestro Audio Framework for MCU

Maestro Audio Framework library for MCU

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

JPEG library

JPEG library

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.

NAND Flash Management Stack

NAND Flash Management Stack

cJSON

Ultralightweight JSON parser in ANSI C

AWS IoT

Amazon Web Service (AWS) IoT Core SDK.

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.

New Project Wizard compile failure

The following components request the user to manually select other components that they depend upon in order to compile.

These components depend on several other components and the New Project Wizard (NPW) is not able to decide which one is needed by the user.

Note: xxx means core variants, such as, cm0plus, cm33, cm4, cm33_nodsp.

**Components:**issdk_mag3110, issdk_host, systick, gpio_kinetis, gpio_lpc, issdk_mpl3115, sensor_fusion_agm01, sensor_fusion_agm01_lpc, issdk_mma845x, issdk_mma8491q, issdk_mma865x, issdk_mma9553, and CMSIS_RTOS2.CMSIS_RTOS2, and components which include cache driver, such as enet_qos.

Also for low-level adapter components, currently the different types of the same adapter cannot be selected at the same time.

For example, if there are two types of timer adapters, gpt_adapter and pit_adapter, only one can be selected as timer adapter

in one project at a time. Duplicate implementation of the function results in an error.

Note: Most of middleware components have complex dependencies and are not fully supported in new project wizard. Adding a middleware component may result in compile failure.

RAM targets build issue in CMSIS bsp pack

CMSIS pack does not support different macro definitions for different targets, all RAM targets for projects inside CMSIS BSP PACKs for RT10XX boards will get the same macro definitions with Flash targets, resulting in build failure. To pass build for RAM targets, manually update the XIP_EXTERNAL_FLASH and XIP_BOOT_HEADER_ENABLE value to 0 in RTE_Components.h.

Non XIP target debug issue on toolchain MDK

When debugging non XIP targets in flash boot mode, if application changes any settings which have impacts on flexspi, the build output window might show “Debug access failed” when start debugging next time. It is recommended to keep the board in serial downloader mode when debugging non XIP targets.

CMSIS PACK new project compile failure

The generated configuration cannot be applied globally. The components, serial_manager_usb_cdc_virtual and serial_manager_usb_cdc_virtual_xxx (xxx means core variants like cm0plus, cm33, cm4, and cm33_nodsp) are unsupported for new project wizard of CMSIS pack and will lead to compile failure if selected while creating new project(s).

Corrupted data in freertos_lpspi_b2b (slave) example

Corrupted data in freertos_lpspi_b2b(slave) example. Tool: Keil MDK Target: freertos_lpspi_b2b_slave_flexspi_nor_debug.

Workaround: Changing the optimization level from -01 to -00 can avoid the issue. However, the optimization level -O1 is not the root cause

Maestro recording to a file has missing audio samples

When recording audio from the on-board mic and saving the output to a file on SD card, there are missing samples in the output pcm file. The maestro_demo design causes the issue. Writing data to SD card should be buffered and handled in a separate thread. The fix for the issue is planned for the next release.

Log output may be mixed in shell/hfp example

When multiple tasks print the log, the serial port terminal output has the probability to appear mixed.

LE encryption failure causes connection to fail

There can be a corner case when LE link encryption can fail. This occurs when device under test (DUT); RT Bluetooth controller here, while waiting for the response to LL_SLAVE_FEATURES_REQ, instead receives the LL_ENC_REQ response from a remote device.

This causes deadlock scenario where DUT and remote devices are stuck waiting for response from peer.

Connection disconnects with 7.5 ms connection interval

When wireless example works as a peripheral, the central role with 7. 5 ms connection interval connects to the wireless example. However, when using the 6th/7th/8th central to connect the wireless example, all the previous connections with the previous centrals are disconnected.

When wireless example works as central and the connection interval is 7.5 ms, the 4th peripheral is not scanned.

a2dp sink demo: Noise may occur when phone plays music with other operations

Noise may occur when phone plays music with other operations.

For example:

  • Switches the WIFI network of the phone when playing music

  • Switches music when playing the online music

Wireless EdgeFast_Bluetooth stack is not supported by any kits

Wireless EdgeFast_Bluetooth stack can be downloaded by MIMXRT1040-EVK-AGM01, MIMXRT1040-EVKOM13790HOST, and MIMXRT1040-EVK-OM13588 in https://mcuxpresso.nxp.com/en/welcome. However, it is not supported in these kits.

Edgefast_Bluetooth stack New Project Wizard compile failure

To prevent compile failure, when using Edgefast_Bluetooth New Project Wizard (NPW), some actions are done manually.

  1. The EDGEFAST Bluetooth New Project Wizard (NPW) does not support the “no board” option. Therefore, a board must be selected when creating project.

  2. The c/c++ library type must be set to “NewlibNano (none)”.

  3. There is a new region “LITTLEFS_FLASH_region” which should be added in Memory configuration setting GUI.

    The region “LITTLEFS_FLASH_region” is split from region “BOARD_FLASH”.

    The size of the region “LITTLEFS_FLASH_region” should meet the following conditions:

    • Condition 1, The size should not be less than 16 kB.

    • Condition 2, The size should be a multiple of the erase page. The multiple should not be less than 4.

  4. Memory configuration: The memory region sequence should follow the order below.

    Memory region

    Location

    Region Size

    BOARD_FLASH

    0x60000000

    0x600000

    LITTLEFS_FLASH_region

    0x60600000

    0x200000

    SRAM_OC

    0x20200000

    0x40000

    SRAM_DTC

    0x20000000

    0x20000

    SRAM_ITC

    0x00000000

    0x20000

    BOARD_SDRAM

    0x80000000

    0x1E00000

    NCACHE_REGION

    0x81E00000

    0x200000

Fail to set security after building connection with peer device and failed ratio is 1/10

Failed the connection with peer device.

Affected toolchains: GCC ARM, IAR, Keil, MCUXPRESSO IDE

Affected modules: 1XK_M2 1ZM_M2 2EL_M2

Affected platforms: evkmimxrt1180 evkbmimxrt1170 mcxn9xxevk mimxrt685audevk evkbimxrt1050 evkcmimxrt1060 evkmimxrt1040 evkmimxrt685 evkmimxrt595