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 |
---|---|
MIMXRT1180-EVK |
MIMXRT1181CVP2B, MIMXRT1181XVP2B, MIMXRT1182CVP2B, |
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
wpa_supplicant-rtos
NXP Wi-Fi WPA Supplicant
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
PSA Test Suite
Arm Platform Security Architecture Test Suite
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.
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”.
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
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
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.
NAND Flash Management Stack
NAND Flash Management Stack
AWS IoT
Amazon Web Service (AWS) IoT Core SDK.
NXP PSA CRYPTO DRIVER
PSA crypto driver for crypto library integration via driver wrappers
ELE Crypto
Crypto functionality provided Edgelock Core
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.
Flashing CM7 Image After Bootable CM33 Image Breaks Build
Issue Description
In SPI boot mode (SW5[1..4] = 0100
), after using IDE/Secure Provisioning Tool to flash a bootable CM33 image, if any flexspi_nor
target CM7 image is programmed using IDE, the SOC will enter an
unresponsive state and all further debugging attempts will fail.
Prevention
To avoid this issue:
After flashing a bootable CM33 image, always erase the flash before flashing any non-bootable CM7 image.
Recovery Steps
If you accidentally enter this state:
Change to Internal Boot mode or Serial Download mode (
SW[1..4] = 0000/0001
)Use IDE/Secure Provisioning Tool to erase the flash
The system should now be restored to normal operation
Note for Customer Boards
For customer boards without a boot mode switch, we are working on a permanent fix which is expected to roll out soon.
Reference
Ticket |
Description |
Version |
---|---|---|
MCUX-76778 |
Flash a CM7 image following a CM33 bootable image will break the build |
25.03.00 |
Segger version
The lowest required J-Link version is v7.94g.
AWS examples are not fully tested
The examples under boards/evkmimxrt1180/aws_examples
are not fully tested. The associated features and functionalities are only for the evaluation purpose. Full feature verification will be covered in a future release.
Missing fsl_cache when create new project with board or kit
When creating a new C/C++ project, if evkmimxrt1180
or evkmimxrt1180_om13790host
kit is selected, fsl_cache
component gets missed and causes build failure. To avoid the build failiure, manually select it in SDK Wizard page.
Debugging problems
When debugging hyperram_txt_debug
or hyperram_txt_release
target, user may encounter issue when debug with breakpoint. The reason is because code is cached. The default breakpoint type is auto/software breakpoint, it will lead soc core and debugger misaligned. As a workaround, please set breakpoint type to hardware breakpoint.
In addition, hyperram_txt
targets can’t debug on IAR versions: 9.50.1, 9.50.2, 9.60.1. The resolution is: delete the selected contents as shown in Figure 1 in IAR path: arm\config\flashloader\NXP\FlashIMXRT1180-EVK_FlexSPI_M33.board.
Other issues
The following are additional known issues in this release.
Ticket |
Description |
History |
---|---|---|
MCUX-66649 |
Build erros when create new project wizard with various component |
2.15.000 RT1180 |
MCUX-65840 |
Semihost terminal is not working well with JLink |
2.15.000 RT1180 |
MCUX-66442 |
Edgefast |
2.15.000 RT1180 |
MCUX-65874 |
WIFI |
2.15.000 RT1180 |
Security ELE requires ping every 24 hours
The security ELE requires ping every 24 hours, which is mandatory.
Most of RT118x demos donot ping ELE every 24 hours, because those demos focus on the function demonstrate only. It is still MUST to ping ELE every 24 hours if demo run duration > 24 hours.
Check hello_world_demo_cm33 for example on how to ping ELE.
CM33 NPW project in MCUXpresso does not support POR run by default
When creating a new CM33 C/C++ project in MCUXpresso, the default is RAW image, which means it does not support POR run.
To make a default POR image, check the “RAW/POR image switch” section in Getting Started document.
Example hello_world_ns fails with mdk toolchain
The example hello_world_ns fails with mdk toolchain while switching to the non-secure world.
Examples: hello_world_ns, hello_world_s Affected toolchains: mdk Affected platforms: evkmimxrt1180
The aws_examples don’t work
The example stucks during TLS connection.
Affected toolchains: mcux Affected platforms: evkmimxrt1180
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.