NXP i.MX RT1170 (MIMXRT1170-EVK) Evaluation Kit Setup Instructions

This topic helps you set up the development environment for NXP's i.MX RT1170.

Board features

  • MIMXRT1176DVMAA MCU featuring 1GHz ARM® Cortex®-M7 core and 400Mhz Cortex®-M4 core
  • 5.5” 720x1080 LCD Touch Display
  • 2 MB Internal SRAM with 512 KB of TCM for Cortex-M7 and 256 KB of TCM for Cortex-M4
  • 16 MB Hyper Flash
  • 512 MB External SDRAM
  • 2 x Gb ENET with AVB and TSN

Setting up a development environment


Use the Qt online installer to install the following prerequisites. You can download the installer from your Qt account.

  • Qt for MCUs SDK
  • Qt Creator v4.12.4 or newer
  • CMake 3.15 or newer
  • Ninja 1.10.0 or newer

    Note: Ninja is an optional build tool and can be replaced with others like JOM or NMake. It is not needed when using Qt Creator.

  • ARM Toolchain 8-2019-q3-update or IAR Build Tools for Arm V8.50, depending on which toolchain you are using
  • EVK-MIMXRT1170 SDK v2.9.0
  • NXP MCUXpresso IDE v11.3.0

    Note: MCUXpresso IDE provides the tools for flashing and onboard debugging.

Note: The Qt online installer does not install the MCUXpresso IDE by default. You must select it explicitly from the list of third-party tools and SDKs.

Qt Creator IDE

  • Launch Qt Creator and select Tools > Options > Devices > MCU.
  • Select the Qt for MCUs 1.8 - MIMXRT1170-EVK-FREERTOS 32bpp from the drop-down list for Target supported by the Qt for MCUs SDK.
  • In the Requirements section, ensure that the platform-specific requirements are met.
  • Select Automatically create kits for all available targets on start to create kits automatically.

    Note: You could also manually create/remove kits using Create Kit and Remove Kit.

  • Click Apply and restart Qt Creator if you choose to create kits automatically.

Note: The Automatically create kits for all available targets on start option is available from Qt Creator v4.14 onwards. On older versions of Qt Creator, you have to explictly create or remove kits using Create kit or Remove kit.

Command line setup

To get started from the command line, ensure that the following environment variables are set:

  • Qul_DIR to the Qt for MCUs SDK install path.


    • <QT_INSTALL_PATH> is the Qt install directory,
    • and <VERSION> is the directory containing the Qt Quick Ultralite version you are using, for example 1.8.0.
  • Toolchain install path, depending on which toolchain is being used


    • For the IAR toolchain, set IAR_ARM_COMPILER_DIR to the IAR Build Tools install path.
  • Add the CMake and Ninja tools to your system PATH. If you installed these tools using the Qt online installer, they are installed under <QT_INSTALL_PATH>\Tools.
  • MCUXpressoIDE_PATH to your MCUXpresso IDE installation path.
  • Create the EVK_MIMXRT1170_SDK_PATH environment variable and set it to the installed SDK path.
  • Create the EVK_MIMXRT1170_FREERTOS_PATH environment variable and set it to the installed FreeRTOS SDK path.

Flashing the firmware

See Flashing Instructions for NXP boards section on how to flash the device.

Build configuration


    The platform to build for must be set to mimxrt1170-evk-freertos for this board.


    This platform supports armgcc toolchain.


    The supported color depth by this platform is 32-bit.

    Note: If this variable is not set, default color depth is used while configuring for the platform.


    By default, the asset data for application is copied to SDRAM on application startup. In order to keep resources in external flash, and not load it to RAM on startup, use the QUL_COPY_TO_RAM CMake option with the value Never when adding assets to the application with qul_add_resource.

Prebuilt demos and examples

The package for NXP i.MX RT1170 Evaluation Kit board comes with the following prebuilt demos and examples:

You can find these in the demo_images directory.

Building applications with prebuilt Qt Quick Ultralite libraries

Qt Creator IDE

Open the CMake project file for the example you want to build and configure it with the kit you created earlier. Once the project is configured, select Run or press Ctrl+r on your keyboard to build and flash the binary to the target.

Command line

The following example builds the motor_cluster demo for this board:

cd %Qul_DIR%\demos\motor_cluster
mkdir build
cd build
cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_TOOLCHAIN_FILE=%Qul_DIR%\lib\cmake\Qul\toolchain\armgcc.cmake -DQUL_PLATFORM=mimxrt1170-evk-freertos
cmake --build .

Once you have successfully built the motor_cluster demo, you can flash it, using the flashing instructions above.

The same procedure applies to any other application.

Reading debug messages

By default, the output of printf calls are redirected to a virtual serial port, which is exposed on the host machine via USB.

Debugging via JTag

In order to debug application code on MIMXRT1170-EVK, a hardware debugger can be connected to the board's JTag port, and J-Link software must be installed from here

The J5-J8 pins (under the JTag socket) must be disabled.

Warning: Disabling J5-J8 pins prevents flashing via DAP-Link. Those pins must be re-enabled before using DAP-Link again.

  • Start the gdb server
    JLinkGDBServer -endian little -noir -speed auto -port 2331 -vd -device MIMXRT1176xxxA_M7 -if SWD -halt -reportuseraction -JLinkScriptFile evkmimxrt1170_connect_cm4_cm7side.jlinkscript
  • Run arm-none-eabi-gdb in a separate console
    $ARMGCC_DIR/bin/arm-none-eabi-gdb path/to/compiled.elf -ex "target remote localhost:2331"
    (gdb) monitor reset halt
    (gdb) continue

    Note: If the monitor reset gdb command does not reset the device, use the load command. JLink script file is delivered with SDK package.

Note: This method requires MCUXpresso IDE v11.3.0 or newer.

For convenience, you can set an environment variable that points to the Redlink tool, which is part of the MCUXpresso IDE.

set REDLINK=%MCUXpressoIDE_PATH%\ide\binaries\crt_emu_cm_redlink

Where, %MCUXpressoIDE_PATH% is an environment variable pointing to the MCUXpresso IDE installation directory.

  • Connect a USB cable to the board (to J11) and to the host PC. Open a terminal window and run the following command:
    %REDLINK% --server :50032 --mi -2 -vc -p MIMXRT1176xxxxx --ConnectScript RT1170_connect_M7_wake_M4.scp --resetscript RT1170_reset.scp -x %Qul_DIR%\platform\boards\nxp\mimxrt1170-evk-freertos\cmake

    GDB Server is now listening for TCP connections on port, 50032.

    Note: To change TCP port used by redlink_server, change --server :50032 to different value.

  • Run arm-none-eabi-gdb in a separate console
    %ARMGCC_DIR%\bin\arm-none-eabi-gdb.exe <PATH_TO>\your_app.elf
  • Connect to the target via the gdbserver in the arm-none-eabi-gdb console using
    (gdb) target remote :50032

Available under certain Qt licenses.
Find out more.