1
Plug It In2
Get Software3
Build, RunSign in to save your progress. Don't have an account? Create one.
Let's take your MIMXRT1040-EVK for a test drive. The pictures below show the MIMXRT1040-EVK image.
The device has four boot modes (one is reserved for NXP use). The boot mode is selected based on the binary value stored in the internal BOOT_MODE register. Switch SW4 is used to select the boot mode on the MIMXRT1040-EVK board.
To boot from the QSPI flash, make sure SW4 is set to 0010.
Something went wrong! Please try again.
The MIMXRT1040-EVK comes preprogrammed with a demo that will initiate the LED on the board to flash periodically when plugged in. When the board is tilted, the green LED gradually illuminates based on the degree of tilt on the X-axis.
Something went wrong! Please try again.
The MCUXpresso SDK is complimentary and includes full source code under a permissive open-source license for all hardware abstraction and peripheral driver software.
Click below to download a pre-configured SDK release for the MIMXRT1040-EVK
You can also use the online SDK Builder to create a custom SDK package for the MIMXRT1040-EVK using the SDK builder.
Something went wrong! Please try again.
NXP offers a complimentary toolchain called MCUXpresso IDE.
No problem! The MCUXpresso SDK includes support for other tools such as IAR, Keil, and command-line GCC.
Something went wrong! Please try again.
Many of the example applications output data over the MCU UART so you'll want to make sure that the driver for the board's virtual COM port is installed. Before you run the driver installer, you MUST have the board plugged into your PC.
With the serial port driver installed, run your favorite terminal application to view the serial output from the MCU's UART. Configure the terminal to 115200 baud rate, 8 data bits, no parity and 1 stop bit. To determine the port number of the MIMXRT1040-EVK virtual COM port, open the device manager and look under the "Ports" group.
Not sure how to use a terminal application? Try one of these tutorials:
Tera Term Tutorial, PuTTY TutorialSomething went wrong! Please try again.
The MCUXpresso SDK comes with a long list of example application code. To see what's available, browse to the SDK boards folder of your SDK installation and select your board, the MIMXRT1040-EVK (<sdk_install_directory>/boards/evkMIMXRT1040</sdk_install_directory>
) or MIMXRT1040-EVK (<sdk_install_directory>/boards/MIMXRT1040EVK</sdk_install_directory>
).
To learn more about specific example code, open the readme.txt file in an example’s directory.
Something went wrong! Please try again.
If one or more of the demo applications or driver examples sounds interesting, you're probably wanting to know how you can build and debug yourself. The getting started with MCUXpresso SDK guide provides easy, step-by-step instructions on how to configure, build and debug demos for all toolchains supported by the SDK.
Use the guide below to learn how to open, build and debug an example application using MCUXpresso IDE.
The following steps will guide you through opening the hello_world example.
Find the Quickstart Panel in the lower left hand corner
Then click on Import SDK examples(s)…
Click on the evkMIMXRT1040 board to select that you want to import an example that can run on that board, and then click on Next
Use the arrow button to expand the demo_apps category, and then click the checkbox next to hello_world to select that project. Make sure UART is selected as the SDK Debug Console. Then, click on Finish
Now build the project by clicking on the project name and then click on the Build icon
You can see the status of the build in the Console tab
hello_world
application is now running and a banner is displayed on the terminal. If this is not the case, check your terminal settings and connections
Using a different toolchain?
The following steps guide you through opening the hello_world
example application. These steps may change slightly for other example applications as some of these applications may have additional layers of folders in their path.
If not already done, open the desired demo application workspace. Most example application workspace files can be located using the following path:
<install_dir >/boards/<board_name >/<example_type >/ <application_name>/iar</application_name> </example_type> </board_name> </install_dir>
Using the the hello_world
demo as an example, the path is located in:
<install_dir> /boards/evkMIMXRT1040/demo_apps/hello_world/iar/hello_world.eww </install_dir>
Select the desired build target from the drop-down.
For this example, select the “hello_world– Debug
” target.
To download and run the application, perform these steps:
Open the terminal application on the PC, such as PuTTY or TeraTerm, and connect to the debug COM port. Configure the terminal with these settings:
main()
functionRun the code by clicking the "Go" button to start the application.
The hello_world
application is now running and a banner is displayed on the terminal. If this is not true, check your terminal settings and connections.
After the MDK tools are installed, Cortex® Microcontroller Software Interface Standard (CMSIS) device packs must be installed to fully support the device from a debug perspective. These packs include things such as memory map information, register definitions and flash programming algorithms. Follow these steps to install the MIMXRT105x CMSIS pack.
The following steps will guide you through opening the hello_world application. These steps may change slightly for other example applications as some of these applications may have additional layers of folders in their path.
If not already done, open the desired example application workspace in:
<install_dir >/boards/<board_name >/<example_type >/ <application_name>/mdk</application_name> </example_type> </board_name> </install_dir>
The workspace file is named <demo_nam>.uvmpw, so for this specific example, the actual path is: </demo_nam>
<install_dir>/boards/evkMIMXRT1040/demo_apps/hello_world/mdk/hello_world.uvmpw </install_dir>
To build the demo project, select the "Rebuild" button, highlighted in red.
The build completes without errors.
To download and run the application, perform these steps:
Connect the development platform to your PC via USB cable.
Open the terminal application on the PC, such as PuTTY or TeraTerm, and connect to the debug serial port number. Configure the terminal with these settings:
BOARD_DEBUG_UART_BAUDRATE
variable in board.h
file)After the application is properly built, click the "Download" button to download the application to the target.
To debug the application, click the “Start/Stop Debug Session” button, highlighted in red.
Run the code by clicking the "Run" button to start the application.
The hello_world
application is now running and a banner is displayed on the terminal. If this is not true, check your terminal settings and connections.
This section contains the steps to install the necessary components required to build and run a KSDK demo application with the Arm GCC toolchain, as supported by the Kinetis SDK. There are many ways to use Arm GCC tools, but this example focuses on a Windows environment. Though not discussed here, GCC tools can also be used with both Linux OS and Mac OSX.
Download and run the installer from GNU Arm Embedded Toolchain. This is the actual toolchain (i.e., compiler, linker, etc.). The GCC toolchain should correspond to the latest supported version, as described in the Kinetis SDK Release Notes.
The Minimalist GNU for Windows (MinGW) development tools provide a set of tools that are not dependent on third party C-Runtime DLLs (such as Cygwin). The build environment used by the KSDK does not utilize the MinGW build tools, but does leverage the base install of both MinGW and MSYS. MSYS provides a basic shell with a Unix-like interface and tools.
Note: The installation path cannot contain any spaces.
mingw32-base
" and "msys-base
" are selected under Basic Setup. Add the appropriate item to the Windows operating system Path environment variable. It can be found under Control Panel → System and Security → System → Advanced System Settings in the "Environment Variables..." section. The path is:
<mingw_install_dir>\bin</mingw_install_dir>
Assuming the default installation path, C:\MinGW, an example is shown below. If the path is not set correctly, the toolchain does not work.
Note: If you have "C:\MinGW\msys\x.x\bin
" in your PATH variable (as required by KSDK 1.0.0), remove it to ensure that the new GCC build system works correctly.
Create a new system environment variable and name it ARMGCC_DIR. The value of this variable should point to the Arm GCC Embedded tool chain installation path, which, for this example, is:
C:\Program Files (x86)\GNU Tools Arm Embedded\4.9 2015q3
Reference the installation folder of the GNU Arm GCC Embedded tools for the exact path name of your installation.
Download CMake 3.0.x from CMake
Install CMake, ensuring that the option "Add CMake to system PATH" is selected when installing. It's up to the user to select whether it's installed into the PATH for all users or just the current user. In this example, the assumption is that it's installed for all users.
To build an example application, follow these steps.
Change the directory to the example application project directory, which has a path like this:
<install_dir >/boards/<board_name >/<example_type >/ <application_name>/armgcc</application_name> </example_type> </board_name> </install_dir>
For this guide, the exact path is:
<install_dir> /boards/evkMIMXRT1040/demo_apps/hello_world/armgcc </install_dir>
Type "build_flexspi_nor_debug.bat
" on the command line or double click on the "build_flexspi_nor_debug.bat
" file in Windows operating system Explorer to perform the build. The output is shown in this figure:
This section describes steps to run a demo application using J-Link GDB Server application. To perform this exercise, two things must be done:
After the J-Link interface is configured and connected, follow these steps to download and run the demo applications:
BOARD_DEBUG_UART_BAUDRATE
variable in board.h
file)Open the J-Link GDB Server application. Go to the SEGGER install folder, for example, C:\Program Files (x86)\SEGGER\JLink_V616f. Open the command windows here, for Debug and Release targets, and use the command "JLinkGDBServer.exe
".
Note: For the sdram_debug and sdram_release targets, use the command "JLinkGDBServer.exescriptfile<install_dir>/boards/evkMIMXRT1040/demo_apps/hello_world/evkMIMXRT1040_sdram_init.jlinkscript</install_dir>
".
Change to the directory that contains the example application output. The output can be found in using one of these paths, depending on the build target selected:
<install_dir >/boards/<board_name >/<example_type >/ <application_name>/armgcc/debug</application_name> </example_type> </board_name> </install_dir>
<install_dir >/boards/<board_name >/<example_type >/ <application_name>/armgcc/release</application_name> </example_type> </board_name> </install_dir>
For this example, the path is:
<install_dir>/boards/evkMIMXRT1040/demo_apps/hello_world/armgcc/debug</install_dir>
arm-none-eabi-gdb.exe <application_name> .elf
”. For this example, it is “arm-none-eabi-gdb.exe hello_world.elf
”. </application_name>
Run these commands:
"target remote localhost:2331
"
"monitor reset
"
"monitor halt
"
"load
"
The hello_world application is now running and a banner is displayed on the terminal. If this is not true, check your terminal settings and connections.
Something went wrong! Please try again.
Learn more about the different boot sources supported by the i.MX RT family, including Execute in Place (XIP).
i.MX RT Secure Boot Lab Guide - Learn how to use the secure boot features of the i.MX family, including how to generate key pairs and certificates, program fuses using leftosb tool, and sign firmware.
Realizing Today's Security Requirements: Achieving End-To-End Security with a Crossover Processor - Learn about common shared security goals that IoT end and edge nodes should meet, as well as the steps, tools and procedures needed to achieve root of trust in end devices.
One-stop secure boot tool: NXP-MCUBootUtility v1.0.0 is released - NXP-MCUBootUtility is a GUI tool specially designed for NXP MCU secure boot. It includes all the features of NXP's official security enablement toolset with support for full graphical user interface operation.
How to Enable Boot from QSPI Flash - This document describes how to use Flashloader step by step to program a bootable image into the external storage device either by using Open SDA or MfgTool.
How to Enable Debugging for FLEXSPI NOR Flash - . This application note describes how to program, debug and configure a new FLEXSPI NOR flash
Developing Code Using the Adesto EcoXip Memory - Learn about the hardware and software requirements for configuring the NXP i.MX RT1050 EVK board with an Adesto EcoXiP Flash device.
Get Your Motor Spinning with i.MX RT - This presentation covers the MCU requirements, motor control basics and framework to spin a BLDC, PMSM or ACIM motor and how to implement motor control on the i.MX RT.
PMSM Field-Oriented Control on MIMXRT10xx EVK Application Note- Describes the implementation of the sensor and sensorless speed and position motor control software for 3-phase Permanent Magnet Synchronous Motors (PMSM).
PMSM Field-Oriented Control on MIMXRT10xx EVK User's Guide - Step-by-step guide on how to open, compile, debug, and run Permanent Magnet Synchronous Motor (PMSM) projects in most common IDEs, such as IAR Embedded Workbench®, MCUXpresso, and Vision® Keil® IDEs. It also describes how to turn the NXP Freedom PMSM power stage and the i.MX RT10xx evaluation kit into a complete motor control reference design, as well as initializing the FreeMASTER GUI tool for controlling motor-control applications.
eIQ® Transfer Learning Lab with i.MX RT - Learn how to perform transfer learning on models and run them on the i.MX RT1040 platform.
eIQ Glow Lab for i.MX RT - Learn how to use the Glow neural network compiler tool by running a handwritten digit recognition model example. A step-by-step video covering this lab is also available below
Getting started with Glow Neural Network Compiler:
Implementing Graphics in Real-time Industrial HMI Systems with NXP MCUs and Embedded Wizard - NXP has partnered with TARA Systems to offer Embedded Wizard as an Enabling Software Technology. Fully integrated Embedded Wizard example projects are available in the MCUXpresso SDK for the i.MX RT1040.
Getting Started with Embedded Wizard and MCUXpresso - Learn how to download an SDK that includes Embedded Wizard and get an example project up and running on your device.
Implementing Graphics in Real Time Industrial HMI Systems with i.MX RT10xx MCUs and Crank Storyboard - NXP has partnered with Crank Software to offer Storyboard as an Enabling Software Technology. Fully integrated Storyboard example projects are available in the MCUXpresso SDK for the i.MX RT1040.
Getting Started with NXP Wi-Fi modules using i.MX RT platform - Let's take your Wi-Fi module for a test drive. This guide uses the Wi-Fi modules and i.MX RT platforms!
Tera Term is a very popular open source terminal emulation application. This program can be used to display information sent from your NXP development platform's virtual serial port.
PuTTY is a popular terminal emulation application. This program can be used to display information sent from your NXP development platform's virtual serial port.
Learn more about the RT1040 with design tips, training documents, and the NXP Community. If you need additional help, contact NXP Support.
Hardware Design Tips for i.MX RT Crossover MCUs - Helpful hints to get your first i.MX RT1040 design off to a good start, including using the power management unit, different boot modes and configuration options.
Connect with other engineers and get expert advice on designing with i.MX RT Crossover MCUs on one of our community sites.