C
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.
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
- 64 MB External SDRAM
- 2 x Gb ENET with AVB and TSN
Setting up a development environment
Prerequisites
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 2.8.1
- NXP MCUXpresso IDE
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.7 - RH850-D1M1A-BAREMETAL 32bpp from the drop-down list for Target supported by the Qt for MCUs SDK.
- Ensure that the Green Hills Compiler and Renesas Graphics Library path are correct.
- 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:
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>\QtMCUs\<VERSION>
where,
<QT_INSTALL_PATH>
is the Qt install directory,- and
<VERSION>
is the directory containing the Qt Quick Ultralite version you are using, for example1.1.0
.
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
Flashing and debugging NXP boards requires the board to have the DAPLINK firmware. If incorrect firmware is flashed, the tools may fail to establish a 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".
Build configuration
- QUL_PLATFORM
The platform to build for must be set to
mimxrt1170-evk-freertos
for this board.-DQUL_PLATFORM=mimxrt1170-evk-freertos
- CMAKE_TOOLCHAIN_FILE
This platform supports armgcc toolchain.
-DCMAKE_TOOLCHAIN_FILE=%Qul_DIR%\lib\cmake\Qul\toolchain\armgcc.cmake
- QUL_COLOR_DEPTH
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.
-DQUL_COLOR_DEPTH=32
- QUL_COPY_TO_RAM
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:
- FreeRTOS
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, 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 the 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
- 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.
Debugging via DAP-Link
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
Run 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.