Overview

The NXP Serial Memory Tool is a Visual Studio Code extension that streamlines serial memory configuration and validation for NXP microcontrollers. With an intuitive graphical interface, developers can easily configure memory parameters, validate settings on real hardware, and generate FCB binaries—all without leaving VS Code.

Note: This user guide is for NXP Serial Memory Tool version 26.03. For the latest updates and information, check the extension marketplace page.

Note: The software is subject to the NXP software license agreement.

Key features

  • Serial memory configuration and validation

  • Real-time validation

  • Integration with Visual Studio Code

  • Import/save capability

  • FCB generation (for supported devices)

  • User-friendly UI for creating and modifying the memory lookup table

  • Link a C project to apply configurations changes (for supported devices)

  • Provides automatic memory‑chip parameter discovery via the SFDP Test (for supported devices)

  • Simplified configuration mode using configuration words, providing an alternative to the Advanced configuration mode (for supported devices)

System requirements

Supported operating systems

  • Windows 10 (64-bit)

  • Windows 11 (64-bit)

Software requirements

  • Visual Studio Code (the latest version is recommended)

  • Python environment (the tool configures this automatically)

Hardware support

  • i.MX RT118x series

  • i.MX RT7xxx series

Installation

Installing the extension

  • Open Visual Studio Code

  • Go to the Extensions view (Ctrl+Shift+X)

  • Search for “Serial Memory Tool for VS Code”

  • Click Install

Setting up the Python environment

  1. After installation, the Install Toolchain button appears in the tool interface.

Install toolchain

  1. To automatically set up the preconfigured Python environment, click the button.

  2. Wait for the installation to complete (this process may take several minutes).

Install toolchain notification

  1. Once the installation is complete, the tool interface will be fully loaded and ready to use. The Welcome page will display the Manage Toolchains option, which allows you to manage your toolchain installation.

Manage toolchains

Getting started

Working with Serial Memory Tool

1. Open VS Code

  • Launch Visual Studio Code on your system

2. Access the Serial Memory Tool

  • Look for the NXP tool icon in the Activity Bar

Toolbar

  • Or open the Command Palette (Ctrl+Shift+P) and search for “Serial Memory Tool”

3. Select the target device

  • Select a processor from the supported devices list.

  • Once a processor is selected, a default Memory Chip is automatically assigned. This chip comes with a standard configuration validated on the EVK board.

  • For supported devices, a toggle button enables switching between Simplified and Advanced configuration modes.

MCU and memory

  • If the Memory Chip is changed, the memory type is updated automatically in the Configuration page to match the new selection.

Memory chip type

4. Use the default configuration or create a custom configuration

  • EVK configuration is set by default for the selected device.

  • Core configuration allows you to modify core-specific paramaters as frequency, caches and prefetch.

Core configuration

4.1. Advanced configuration mode

  • Provides full control over memory parameters.

  • If needed, adjust the configuration of Memory, FlexSPI Connection, Memory LUT.

  • Memory Information Configuration

Memory information configuration

  • FlexSPI Connection Configuration

Flexspi connection configuration

  • Memory LUT Configuration provides the option to add or remove LUT commands as it is needed for advanced memory configurations.

Memory lut configuration

4.2. Simplified configuration mode

  • This mode is intended for standard configurations and reduces complexity compared to Advanced mode

  • Select configuration words from the drop-down menu to quickly apply predefined memory settings

Simplified configuration mode

4.3. To save any configuration changes, press Ctrl+S or navigate to File->Save.

Save configuration

6. Board detection

  • Before connecting, ensure the board is configured to boot in Serial Downloader mode.

  • Connect one cable to the USB_OTG1 for the Serial Downloader interface and the second cable to the Debug USB port for UART communication.

  • A connected board can be detected using the “Refresh current connection” button available in the Connection group.

Refresh connection

  • Choose the appropriate COM port in case multiple boards are connected.

  • The connection icon changes and indicates the Connected status once the board is detected.

Board detection

7. Validate configuration by executing tests on the target

Configure test parameters:

  • Click Test, the Test Configuration tab opens to the right.

  • To modify test settings, change test parameters.

  • Upon test parameters changing, validation errors can be displayed in case the selected parameters are not correct.

Test configuration

Execute test:

  • Tests cannot be executed unless a board is detected (the Run Test button is disabled).

  • Once a board is detected, the tests Run button gets enabled (green icon).

  • Click the Start button to start the test execution.

  • The pass / Fail status icon is displayed in the left side of the tests tree after the test finishes executing.

Test execution

  • Test result is also displayed in the Test Result panel.

Test result

  • For the SFDP test, a detailed report is generated showing memory parameters detected from the device.

SFDP table

8. Test Logging

  • The Test execution log is displayed in the Serial Memory Tool for VS Code console that automatically opens at the bottom when a test starts.

  • Upon test completion, a summary report is generated displaying the overall test results. A notification appears with options to open the log file or log folder.

Test logging

9. Import configuration

  • The Import button is located in the top-right corner in the “MCU & Memory” panel.

  • Imported -> A saved configuration can be imported using the import button.

Import configuration

10. Generate FCB

  • The FCB button is available in the top-right corner in the “MCU & Memory” panel.

  • To generate and save FCB binary, use the Generate FCB button.

Generate FCB

Basic workflow

Start Tool → Select MCU and Memory Chip → Configure Memory Settings → Board detection → Validate Configuration by executing tests on target -> Generate FCB or save configuration

Basic Workflow

User interface overview

Main interface components

Welcome Panel

The Welcome Panel is located in the top-right corner of the interface and serves as the starting point for toolchain management and initial setup. It provides access to options such as installing and managing the toolchain, allowing users to configure their development environment. Through this panel, it is possible execute commands to install the toolchain, uninstall it if needed, and check for available updates to ensure the setup remains current and functional.

Device selection panel (MCU & Memory)

This panel is located at the top of the interface, making it easily accessible as the starting point for configuration. The panel allows choosing the target microcontroller unit (MCU) and the memory chip you intend to work with. This selection is essential for tailoring the configuration and generation process to your specific hardware setup. Currently, the RT1180 microcontroller is available for selection. Additional devices will be supported in future updates.

Panel sections:

  • MCU Device selection: Choose the microcontroller that matches your project requirements.

  • Memory Chip selection: Select the memory chip that will be paired with the chosen MCU.

  • Import / Save / Generate FCB Buttons: Use these buttons to import existing configurations, save your current setup, or generate the Flash Configuration Block (FCB) based on your selections.

Configuration panel

The Configuration Panel is located in the center area of the interface and is used to set up parameters for serial memory.

Panel sections:

  • Core Configuration

  • Memory Information Configuration

  • FlexSPI connection configuration

  • Memory LUT Configuration

Tests panel

The Tests Panel is located on the right side of the center area and is designed to display validation results and errors. It features validation, providing feedback on the correctness of the configuration, and indicates whether the current setup passes or fails. This helps users identify and resolve issues, ensuring an accurate configuration process.

Connection panel

The Connection Panel is located at the bottom right side of the interface and is used to detect whether a development board is connected. It shows the current connection status and allows users to manually refresh the connection by clicking the Refresh connection button. This helps ensure that the system is properly linked to the hardware before proceeding with further configuration or testing.

Troubleshooting

This chapter contains known problems and recommended solutions.

Issue: tool does not start

Symptoms: Extension loads but the tool interface does not appear.

Solutions:

  1. Restart VS Code

  2. Check if Python environment is properly installed

  3. Run “Manage Toolchain” and Reset Toolchain

  4. Reinstall Toolchain using “Install Toolchain” button

  5. Check VS Code output panel for error messages

Issue: device is not recognized

Symptoms: RT1180 does not appear in the device list.

Solutions:

  1. Make sure to use a supported Windows version

  2. Update the extension to the latest version

  3. Check system requirements

Known issues and limitations

This chapter contains limitations and possible workaround.

Current limitations

  1. Operating system support:

  • Currently supported only on Windows 10/11 (64-bit)

  • macOS and Linux support is available in future releases

  1. Device support:

  • Limited to RT11xx and RT7xx microcontroller families

  • Additional device support is in development

  1. Feature limitations:

  • FCB generation is currently limited to RT11xx devices

  • SFDP test table generation is currently limited to RT11xx devices

  • Linking a C project is currently limited to RT11xx devices

  • Simplified mode is currently limited to RT11xx devices

Workarounds

Unsupported operating systems

  • Use a Windows virtual machine

  • Wait for future OS support updates

Additional device support

  • Check for extension updates regularly

  • Contact NXP support for roadmap information

References

  1. Documentation:

  • RT1180 reference manual

  1. Online resources:

  1. Technical support:

Revision history

Document ID

Release date

Description

UG10328 v.3.0

31 March 2026

Updated for 26.03.

UG10328 v.2.0

12 December 2025

Updated for 25.12.

UG10328 v.1.0

4 December 2025

Initial version.

Note about the source code in the document

Example code shown in this document has the following copyright and BSD-3-Clause license:

Copyright 2026 NXP Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.