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.
Note: This port is a Technology Preview and access to it is available only on request. Contact sales for more information.
- 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
- 64 MB External SDRAM
- 2 x Gb ENET with AVB and TSN
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
In addition, install the following separately as the Qt online installer does not provide these:
- NXP MCUXpresso IDE (download)
Note: MCUXpresso IDE provides the tools for flashing and onboard debugging
- Install EVK-MIMXRT1170 SDK 2.6.1
To get started from the command line, ensure that the following environment variables are set:
Qul_DIRto the Qt for MCUs SDK install path.
<QT_INSTALL_PATH>is the Qt install directory,
<VERSION>is the directory containing the Qt Quick Ultralite version you are using, for example
ARMGCC_DIRto the ARM Toolchain 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
MCUXpressoIDE_PATHto your MCUXpresso IDE installation path.
- Create the
EVK_MIMXRT1170_SDK_PATHenvironment variable and set it to the installed SDK path.
- Create the
EVK_MIMXRT1170_FREERTOS_PATHenvironment variable and set it to the installed FreeRTOS SDK path.
Flashing and debugging NXP boards requires the board to have the DAPLINK firmware. If incorrect firmware is flashed, the tools may fail to establish connection with the device.
NXP provides the firmware for download. On the download page, select your board type and download the "Default firmware application, DAPLink".
After installing the DAPLink, follow these instructions to flash the firmware:
- Power off the board
- Press and hold SW3 while powering on the board
- Connect a USB cable to the DAPLink USB port, which will show up as a new disk called "MAINTENANCE". Now, SW3 can be released.
- Copy the DAP LINK FW binary onto the maintenance disk to program the new DAP LINK firmware.
- After flashing is finished, the drive is labeled "RT1170-EVK".
The platform to build for must be set to
mimxrt1170-evk-freertosfor this board.
This platform supports armgcc compiler.
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
Neverwhen adding assets to the application with qul_add_resource.
The package for
NXP i.MX RT1170 Evaluation Kit board comes with the following prebuilt demos and examples:
You can find these in the
A compiled application can be flashed to the device:
- Make sure SW1 switches are set to: 1-OFF, 2-OFF, 3-ON, 4-OFF.
- Connect the board to your computer through J11 USB port (DAP-LINK port).
- Wait for device and mount the RT1170-EVK drive.
- Copy the
*.binfile of your application directly to that drive.
- Wait until copy operation finished and the board remounts itself.
- After the device mounts back again, press the reset button, located next to the power socket, to reset the device.
Qt for MCUs provides the source code of several demos and examples. You can modify, build, and flash custom binaries onto the target device.
Source code for supported demos and examples is organized in the following directory structure:
Note: Demos or examples that are highlighted in bold are the only ones supported on this board.
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=Debug -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.
If your license provides access to the Qt Quick Ultralite sources, build it using the following commands:
cd %Qul_DIR% mkdir build cd build cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=..\lib\cmake\Qul\toolchain\armgcc.cmake -DQUL_GENERATORS=..\lib\cmake\Qul\QulGenerators.cmake -DQUL_PLATFORM=mimxrt1170-evk-freertos cmake --build .
Once Qt Quick Ultralite is built successfully, you can flash the supported demos/examples, using the flashing instructions above.
This section describes how to build an application, using a custom Qt Quick Ultralite build.
- First, you must set up the development environment as described earlier.
- Build Qt Quick Ultralite from the modified sources and install it to a custom location.
mkdir some\path\custom_builds\qul cd some\path\custom_builds\qul mkdir qul-build cd qul-build cmake <PATH_TO_INSTALLED_QT_SDK>\QtMCUs\<version> \ -G "Ninja" \ -DCMAKE_INSTALL_PREFIX=some\path\custom_builds\qul \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_TOOLCHAIN_FILE=<PATH_TO_INSTALLED_QT_SDK>\QtMCUs\<version>\lib\cmake\Qul\toolchain\armgcc.cmake \ -DQUL_PLATFORM=<PLATFORM_NAME> \ -DQUL_BUILD_TESTS=OFF \ -DQUL_BUILD_DEMOS=OFF \ -DQUL_BUILD_EXAMPLES=OFF \ -DQUL_GENERATORS=<PATH_TO_INSTALLED_QT_SDK>\QtMCUs\<version>\lib\cmake\Qul\QulGenerators.cmake \ ninja install
- Use the custom Qt Quick Ultralite to build your application, which is not part of the Qt Quick Ultralite source tree:
cd some\path\custom_builds mkdir app # Put your application here. You can use the redbutton example from the SDK. cd app mkdir build cd build set QUL_DIR=some\path\custom_builds\qul cmake .. \ -G "Ninja" \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_TOOLCHAIN_FILE=some\path\custom_builds\qul\lib\cmake\Qul\toolchain\armgcc.cmake \ -DQUL_GENERATORS=<PATH_TO_INSTALLED_QT_SDK>\QtMCUs\<version>\lib\cmake\Qul\QulGenerators.cmake \ -DQUL_PLATFORM=<PLATFORM_NAME> \ ninja ninja flash_<YOUR_APP_NAME>
By default, the output of
printf calls are redirected to a virtual serial port, which is exposed on the host machine via USB.
In order to debug application code on MIMXRT1170, a hardware debugger must be connected to the board's JTag port, and J-Link software must be installed from here
The J5-J8 pins (under JTag socket) must be disabled.
Warning: Disabling J5-J8 pins prevents flashing via DAP-Link. Those pins must be re-enabled before flashing binaries.
Note: Currently flashing via JTag is not supported, see flashing instructions
- Start the gdb server
JLinkGDBServer -endian little -noir -speed auto -port 2331 -vd -device MIMXRT1062DVL6A -if SWD -halt -reportuseraction
arm-none-eabi-gdbin 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.
Note: This method is not fully working, some instructions can't be debugged.
Connect a USB cable to the board (to J11) and to the host PC. Install pyocd software and run it:
pyocd gdbserver -p 2331
arm-none-eabi-gdb in a separate console
$ARMGCC_DIR/bin/arm-none-eabi-gdb build/Debug/nxp1170-example.elf -ex "target remote localhost:2331" (gdb) monitor reset halt (gdb) continue
Available under certain Qt licenses.
Find out more.