# Introduction **MCUXpresso** **Config Tools** set is a suite of evaluation and configuration tools that help you from initial evaluation to production software development. With **MCUXpresso Config Tools**, you can configure NXP Cortex-M processors and generate initialization of SDK-drivers. The MCUXpresso Config Tools is intended for general use and aims to help hardware designers, software engineers, embedded engineers, and field application engineers \(FAEs\). The tool is distributed free of charge. The installer for Windows, Linux, or Mac can be downloaded from [https://www.nxp.com/](https://www.nxp.com/). To compile the generated code, an MCUXpresso SDK package is required. You can download SDK packages from [http://mcuxpresso.nxp.com](http://mcuxpresso.nxp.com). The SDK package contains many example projects that can help you get started. Use the link in the installation folder to start the tool. As the first step in the tool, you must create a configuration. The following use cases are described in the document: - **Starting with SDK example or existing project**- It is useful for new users to start with the example project for an NXP evaluation board of for users that already have a toolchain project with sources generated by the tool. Supported toolchain are Keil μVision, IAR Embedded Workbench, CodeWarrior, Arm GCC and SDK West. - **Starting with new configuration** - It is useful to start with a new configuration for a custom board or with an existing toolchain project that does not contain any tool configuration yet. ## Creating a new configuration You can create a configuration from the **Start development** wizard or by selecting **File > New** from the **Menu bar**. If you start creating your development for any NXP board or kit, we recommended you start with an MCUXpresso SDK example to create a configuration for a board or a kit. Such a configuration contains board-specific settings. If you select a processor, the configuration will be empty. After the new configuration is created, you can continue by importing an existing configuration from an MEX file. It is useful if you already have a configuration available or if you want to reuse a previous configuration. To import an existing configuration from an MEX file, select **File > Import... > Import configuration \(\*.mex\)** from the **Menu bar**. ### Cloning an SDK example You can create a configuration by cloning an SDK example project for IAR Embedded Workbench, Keil μVision, CodeWarrior Development Studio, and/or GCC ARM Embedded \(command line\). The resulting project contains all source files and libraries to build the project and can be easily customized, shared, or put under a control version system. **Note:** The creation \(cloning\) of the projects based on the SDK examples will no longer be supported in the future releases of the MCUXpresso Config Tools. Instead, use use the MCUXpresso SDK CMake, Kconfigbased build. For detailed documentation, see the SDK Build And Configuration System documentation. SDK example cloning is supported for MCUXpresso SDK 2.2 and higher. **Note:** To be able to clone an SDK example or create a "hello\_world" project, you must first download an SDK package. For more information about SDK packages offered by NXP Semiconductors, refer to the [MCUXpresso Software Development Kit](https://www.nxp.com/support/developer-resources/software-development-tools/mcuxpresso-software-and-tools/mcuxpresso-software-development-kit-sdk:MCUXpresso-SDK). **Note:** If the server is unavailable, and device data is not cached, creating the project fails. ```{eval-rst} .. figure:: _images/start_dev_project_corrected.png :scale: 50% :align: center **Cloning SDK** ``` To clone an SDK example, do the following: 1. In the **Start development** wizard, select **Create a new configuration based on an SDK example or a "hello world" project**. Alternatively, in the **Menu bar**, select **File** > **New**. 2. Click **Next**. 3. Specify the path to your locally saved SDK package. 4. Choose the toolchain that you want to create the project for. 5. Choose the SDK example that you want to clone. 6. Specify a base project directory to save your project to. 7. Specify the project name. 8. Click **Finish**. You can also create a basic, minimally customized "hello\_world" project without having to select an SDK example from the package. To create a "hello\_world" project, do the following: 1. In the **Start development** wizard, select **Create a new configuration based on an SDK example or a "hello world" project**. Alternatively, in the **Menu bar**, select **File** > **New**. 2. Click **Next**. 3. Specify the path to your locally saved SDK package. 4. Choose the toolchain that you want to create the project for. 5. Select **Create "hello\_world"**. 6. Specify a base project directory to save your project to. 7. Specify the project name. 8. Click **Finish**. The Config Tools Overview window shows the details of the configuration and supported tools. Now, select a tool by clicking its icon. ### Creating a new toolchain configuration You can create a configuration for an existing toolchain project. Once done, configuration files associated with the project are updated directly. MCUXpresso Config Tools currently supports the following toolchains: - IAR Embedded Workbench - Keil MDK uVision - Arm GCC - CodeWarrior with SDK - SDK West **Note:** For proper functionality of Config Tools, it is required that the toolchain project originates from the SDK package or has been created using the cloning feature of Config Tools. To create a configuration based on an existing IDE/Toolchain project, do the following: 1. In the **Start development** wizard, select the **Create a new configuration based on an existing IDE/Toolchain project**. Alternatively, in the **Menu bar**, select **File** > **New**. 2. Click **Browse**. 3. Select the project file and confirm by clicking **OK**. 4. Click **Finish**. ### Creating a new standalone configuration You can create a new configuration that is not part of any toolchain project. You can later include this configuration in a project by saving the configuration \(MEX\) file in the toolchain project folder. ```{eval-rst} .. figure:: _images/create_a_new_configuration.png :scale: 50% :align: center **Creating a new configuration** ``` To create a standalone configuration, do the following: 1. In the **Start development** wizard select **Create a new standalone configuration for processor, board, or kit**. Alternatively, in the **Menu bar**, select **File** > **New**. 2. Click **Next**. 3. Select the processor, board, or kit from the list. **Note:** If you are working offline, you will only see locally saved options. For more information, see the **Working offline** section of *User Guide for MCUXpresso Config Tools \(Desktop\)* \(document [GSMCUXCTUG](http://nxp.com/doc/GSMCUXCTUG)\) 4. Name your configuration. Optionally, you can select processor package, core, and SDK version. 5. Click **Finish**. # Select tool The right-hand side of the toolbar contains tool-selection buttons. Use these buttons to switch between the tools. ```{table} Tools :name: tools |**Name**|**Description**| |:--:|:---------:| |[Pins Tool](#pins-tool)|Enables you to configure the pins of a device. Pins tool enables you to create, inspect, change, and modify any aspect of the pin configuration and muxing of the device.| |[Clocks Tool](#clocks-tool)|Enables you to configure initialization of the system clock \(core, system, bus, and peripheral clocks\) and generates the C code with clock initialization functions and configuration structures.| |[Peripherals Tool](#peripherals-tool)|Enables you to configure the initialization for the MCUXpresso SDK drivers.| |[Device Configuration Tool](#device-configuration-tool)|Enables you to generate a Device Configuration Data \(DCD\) image using the format and constrains specified in the boot ROM reference manual.| |[TEE \(Trusted Execution Environment\) Tool](#trusted-execution-environment-tool)|Enables you to configure the security policies of memory areas, bus masters, and peripherals, to isolate and safeguard sensitive areas of your application.| ``` ## Pins Tool In the **Pins** tool, you can display and configure the pins of the processor. Basic configuration can be done in the **Pins, Peripheral Signals**, or **Package** views. More advanced settings \(pin electrical features\) can be adjusted in the **Routed Pins view**. ```{eval-rst} .. figure:: _images/pins_view_desktop.png :scale: 30% :align: center **Pins Tool** ``` ## Clocks Tool In the **Clocks** tool, you can display and modify clock sources and outputs. Use the **Clocks Table** view to set clock sources and outputs, More advanced settings can be adjusted via the **Clocks Diagram** and **Details** views. Global settings of the clocking environment such as run modes, MCG modes, and SCG modes can be modified in the **Clocks Table**, **Clocks Diagram**, in **Functional group properties**, and in the **Details** view. ```{eval-rst} .. figure:: _images/clocks.png :scale: 30% :align: center **Clocks Tool** ``` ## Peripherals Tool In the **Peripherals** tool, you can configure the initialization of selected peripherals and generate code for them. In the **Peripherals view**, select the peripherals to configure and confirm the addition of the configuration component. Then you can select the mode of the peripheral and configure the settings within the settings editor. ```{eval-rst} .. figure:: _images/periph.png :scale: 30% :align: center **Peripherals Tool** ``` ## Device Configuration Tool The **Device Configuration** tool allows you to configure the initialization of memory interfaces of your hardware. Use the **Device Configuration Data \(DCD\)** view to create different types of commands and specify their sequence, define their address, values, sizes, and polls. ```{eval-rst} .. figure:: _images/mcux7dcd.png :scale: 35% :align: center **Device Configuration tool** ``` ## Trusted Execution Environment Tool In the **Trusted Execution Environment**, or **TEE** tool, you can configure the security policies of memory areas, bus masters, and peripherals, to isolate and safeguard sensitive areas of your application. You can set the security policies of different parts of your application in the **Security Access Configuration** and its subviews, and review these policies in the **Memory Attribution Map**, **Access Overview** and **Domains Overview** views. Use the **User Memory Regions** view to create a convenient overview of memory regions and their security levels. You can also view the registers handled by the **TEE** tool in the **Registers** view, and inspect the code in the **Code Preview** tool. **Note:** For your configuration to come into effect, make sure you have enabled the relevant enable secure check option in the **Miscellaneous** subview of the **Security Access Configuration** view. ```{eval-rst} .. figure:: _images/tee_general.png :scale: 30% :align: center **TEE tool user interface (SAU+IDAU)** ``` ```{eval-rst} .. figure:: _images/fig121_tee_user_interface_rdc.png :scale: 25% :align: center **TEE tool user interface (RDC)** ``` # Generate code You can update source files generated by the **MCUXpresso Config Tools** by clicking the **Update Code button**. The command opens a dialog with a list of files that will be regenerated and allows to select which tools will generate the code. ```{eval-rst} .. figure:: _images/d_updatecode.png :scale: 80% :align: center **Update Code button** ``` Alternatively, you can also export a selected source file by clicking the export button in the **Code Preview** view. ```{eval-rst} .. figure:: _images/pinscode.png :scale: 70% :align: center **Code Preview** ``` # 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 must be 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. # Revision history ```{table} Revision history :name: revision-history |Document ID|Release date|Description| |-----------|------------|-----------| |MCUXDQS v.15.0|25 March 2026|Updated for v.26.03| |MCUXDQS v.14.0|16 December 2025|Updated for v.25.12| |MCUXDQS v.13.0|18 September 2025|Updated for v.25.09| |MCUXDQS v.12.0|20 June 2025|Updated for v.25.06| |MCUXDQS v.11.0|17 March 2025|Updated for v.25.03| |MCUXDQS v.10.0|15 January 2025|Updated for v.24.12| |MCUXDQS v.9.0|24 September 2024|Updated for v.16.1| |MCUXDQS v.8.0|1 July 2024|Updated for v.16| |MCUXDQS v.7.0|19 April 2024|Updated for v.15.1| |MCUXDQS v.6.0|10 January 2024|Updated for v.15| |MCUXDQS v.5.0|31 July 2023|Updated for v.14| |MCUXDQS v.4.0|2 January 2023|Updated for v. 13| |MCUXDQS v.3.0|20 September 2022|Updated for v.12.1| |MCUXDQS v.2.0|30 June 2022|Updated for v.12| |MCUXDQS v.1.0|22 December 2021|Screenshots are updated.| |MCUXDQS v.0|23 June 2021|Initial version| ```