Let's take your MIMXRT1010-EVK for a test drive! You have the choice of watching the sequence in a short video or following the detailed actions list below.
Your MIMXRT1010-EVK comes loaded with a "led blinky" demo that uses the onboard LED. When the board is powered, the Green LED should flash on and off.
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 MIMXRT1010-EVK
You can also use the online SDK Builder to create a custom SDK package for the MIMXRT1010-EVK.
NXP offers a complimentary toolchain called MCUXpresso IDE.
Want to use a different toolchain?
No problem! The MCUXpresso SDK includes support for other tools such as IAR, Keil and command-line GCC.
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 MIMXRT1010-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 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.
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 MIMXRT1010-EVK (/boards/evkmimxrt1010).
To learn more about specific example code, open the readme.txt file in an example’s directory.
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 the IAR IDE.
Using a different toolchain?
The i.MX RT family supports a number of different boot sources, and includes the option for memory to be copied to an on-chip or external destination memory as well as Execute in Place (XIP) for some interfaces. Learn more about your choices and which one is best for your design.
Documents and Videos | Description |
---|---|
AN12108 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. |
AN12107 How to Enable Boot from Octal SPI Flash and SD Card | This document describes how to program a bootable image into the external storage device. |
Community Resources for Booting Look for answers to your boot questions or submit new questions in our Community.
Documents and Videos | Description |
---|---|
AN12437 i.MX RT Series Performance Optimization | How to optimize the system performance running on different memory devices. |
AN12108 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. |
AN12107 How to Enable Boot from Octal SPI Flash and SD Card | This document describes how to program a bootable image into the external storage device. |
AN12183 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 EVKB board with an Adesto EcoXiP Flash device. |
AN12564 Implement Read While Write (RWW) on i.MX RT Series | How to implement RWW requirement on the i.MX RT series. |
AN12239 How to Enable HyperRAM with i.MX RT | How to use the HyperRAM with the i.MX RT MCU, including hardware connections, HyperRAM protocol, source code and performance. |
AN13028 Advanced HyperRAM/PSRAM Usage on i.MX RT | This application note describes the advanced usage of HyperRAM/PSRAM when used with FlexSPI on i.MX RT MCU, including FlexSPI prefetch function, HyperRAM/PSRAM refresh interval and HyperRAM devices supported. |
Several examples, demos and drivers are available within the SDK to help you get started. Some common examples related to external memory are listed below.
How to use the FlexSPI driver with polling.
Path: <SDK_PATH>/boards/evkbimxrt1010/driver_examples/flexspi/nor/polling_transfer
Multiple data transfer examples using EDMA.
Path: <SDK_PATH>/boards/evkbimxrt1010/driver_examples/flexspi/nor/edma_transfer
The i.MX RT1010 is secure-by-design and supported by secure software driving the secure System-on-a-Chip (SoC).
Documents and Videos | Description |
---|---|
i.MX RT Secure Boot Lab Guide | Learn how to use the secure boot features of the i.MX family including generating key pairs and certificates, programming fuses using leftosb tool and signing firmware. |
Secure Boot on the i.MX RT10xx Crossover MCUs | Learn more about secure boot features and how the MCUXpresso Secure Provisioning Tool allows you to configure them. |
Getting Starting with MCUXpresso Secure Provisioning Tool | This series of videos covers the basic getting started aspects of the tools with a live demonstration of the tool showcasing a variety of provisioning types and boot devices available on the i.MX RT1060 evaluation kit. |
Secure Boot Webinar and demo | Using the latest NXP software and tools, you can integrate boot authentication and encrypted execution into your design based on i.MX RT10xx MCUs. Learn more about secure boot features and how the MCUXpresso Secure Provisioning Tool allows you to configure them. |
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. |
AN12800 i.MX RT10xx Fuse Provisioning for Security | For secure applications, there are some fuses that are not related to security features and might need to be configured. This document discusses fuse provisioning for secure applications and provides fuse configuration recommendations. |
AN12419 Secure JTAG for iMX RT10xx | This document discusses how the Secure JTAG on the i.MX RT10xx MCU family can be used. |
AN12901 DCP – How to do Key Management | The i.MX RT10xx provides a Data Co-Processor (DCP) block, which supports Advanced Encryption Standard (AES) encryption and hashing functions. This application note describes how to use the AES block with different keys, and how to manage keys. |
Several examples, demos and drivers are available within the SDK to help you get started. Some common examples related to security are listed below.
A demonstration program that uses the KSDK software to implement several cryptography algorithms using the DCP software driver.
Path: <SDK_PATH>/boards/evkbimxrt1010/driver_examples/dcp
Program performs cryptographic algorithm benchmarking and testing. (Requires optional mbedTLS middleware package)
Path: <SDK_PATH>/boards/evkbimxrt1010/mbedtls_examples/
Two examples of how to use the on-the-fly AES-128 decryption driver.
Path: <SDK_PATH>/boards/evkbimxrt1010/driver_examples/otfad
MCUXpresso Secure Provisioning Tool GUI-based application provided to simply generation and provisioning of bootable executables on NXP i.MX RT.
RT1010 Security Reference Manual
One-stop secure boot tool: NXP-MCUBootUtility 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.
Documents and Videos | Description |
---|---|
Wired Communications Middleware for NXP Microcontrollers | Learn about wired communications libraries and examples provided through MCUXpresso SDK. |
AN12822 Emulating 8080 Bus with the FlexIO on RT1050 | How to use the FlexIO module to emulate the 8080 parallel bus and to drive a graphic TFT LCD with the 8080 bus interface. |
AN12679 Implement High-Speed RS-485 Application with i.MX RT Based on NXP SDK | How to implement RS-485 communication with NXP i.MX RT series EVK and how to design software based on NXP MCUXpresso SDK. |
Several examples, demos and drivers are available within the SDK to help you get started. Some common examples for wired communications are listed below.
How to use the LPI2C driver for EDMA, interrupt and polling.
Path: <SDK_PATH>/boards/evkbimxrt1010/driver_examples/lpi2c
How to use the LPSPI driver for EDMA, interrupt and polling.
Path: <SDK_PATH>/boards/evkbimxrt1010/driver_examples/lpspi
A number of USB examples for host and device operation exist within the SDK. (Requires optional USB Host, Device, OTG stack middleware package).
Path: <SDK_PATH>/boards/evkbimxrt1010/usb_examples/
Documents and Videos | Description |
---|---|
Cloud Connectivity on NXP Microcontrollers | Integrated support for cloud services including Amazon Web Services, Microsoft Azure and Google Cloud IoT. |
AN12257 IoT Device Secure Connection with LoRa | This document explains how to establish IoT secure connection with LoRa between gateway and end devices. |
Power management includes device-specific techniques and information on power management and low-power optimization.
Documents and Videos | Description |
---|---|
AN12085 How to use i.MX RT Low Power Feature | Describes the low-power application design points on the i.MX RT series. |
AN12574 Power Consumption and Measurement of i.MX RT1010 | This document discusses the power consumption of the i.MX RT1010 including run mode and low-power mode configurations and power consumption under different power modes. |
Several examples, demos and drivers are available within the SDK to help you get started. A common example related to power management is listed below.
Demonstrates the use of power modes in the KSDK for bare metal or RTOS.
Path: <SDK_PATH>/boards/evkbimxrt1010/demo_apps/power_mode_switch
Documents and Videos | Description |
---|---|
Audio Software on NXP Microcontrollers | Middleware, example applications, MCUXpresso Config tools and partner solutions for advanced audio applications. |
AN12090 Using Multi-Channel Feature of SAI | This document introduces the technology of a 7.1 surround sound system, including SAI and FLAC, and provides guidance on how to use the multi-channel SAI feature to develop applications running in a correct high-performance way. |
Several examples, demos and drivers are available within the SDK to help you get started. Some common examples related to audio are listed below.
Demonstrates complicated digital audio playback and record case.
Path: <SDK_PATH>/boards/evkbimxrt1010/demo_apps/sai
How to use sai driver with EDMA, interrupt, record and playback features.
Path: <SDK_PATH>/boards/evkbimxrt1010/driver_examples/sai
How to use flexio_i2s driver with EDMA and with interrupt.
Path: <SDK_PATH>/boards/evkbimxrt1010/driver_examples/flexio/i2s
Audio recording and playback examples for bare metal and FreeRTOS.
Path: <SDK_PATH>/boards/evkbimxrt1010/usb_examples
Motor control is a complicated and advanced topic, with a wide range of intricacies and pitfalls that depend on the number of motors, motor type and sensored or sensorless motor drivers.
NXP has a number of ready-to-use motor control algorithms (middleware), and the best way to get started is with the FreeMaster examples included in the MCUXpresso SDK. These examples utilize the FreeMASTER Run-Time Debugging Tool , a user-friendly real-time debug monitor and data visualization tool that enables runtime configuration and tuning of embedded software applications.
FreeMASTER supports non-intrusive monitoring of variables on a running system and can display multiple variables on oscilloscope-like displays as standard widgets (gauges, sliders and more) or as data in text form, offering simple-to-use data recorders. It can link with HTML, MATLAB® or Excel to other scriptable frameworks or even popular visual programming tools like Node-RED.
Documents and Videos | Description |
---|---|
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. |
AN12214 PMSM Field-Oriented Control on MIMXRT10xx EVK | 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, as well as how to turn the NXP Freedom PMSM power stage and the i.MX RT10xx evaluation kit into a complete motor control reference design. |
AN12659 NXP quad motor-control development platform HW overview | Describes the NXP quad motor-control development platform modular architecture and provides a detailed hardware description of the different components. |
AN12200 Dual FOC Servo Motor Control on i.MX RT | Describes the dual servo demo with the NXP i.MX RT1020 processor. You can use it as a reference for motor control application developing based on other i.MX RT products. |
FreeMASTER How To | A starting guide for engineers using FreeMASTER tool. |
FreeMASTER 3.0 Installation Guide | This article will walk you through the installation process of FreeMASTER 3.0. |
FreeMASTER Four-Part Webinar Series | On-demand training provides an overview of the FreeMASTER software, its features, capabilities, available examples, application use cases and how to easily get started. |
Several examples, demos and drivers are available within the SDK to help you get started. Some common examples related to Motor Control are listed below. Note that all examples require the optional motor control middleware package.
AC induction motor middleware.
Path: <SDK_PATH>/middleware/acim
Brushless DC electric motor middleware.
Path: <SDK_PATH>/middleware/bldc
Freemaster middleware for motor control examples.
Path: <SDK_PATH>/middleware/freemaster
Permanent magnet synchronous motor middleware.
Path: <SDK_PATH>/middleware/pmsm
RTCESL Libraries A group of algorithms ranging from basic mathematics operations to advanced transformations and observers, which can be easily incorporated into complex real-time control applications and used in our motor control reference designs.
AMCLIB User’s Guide Describes the Advanced Motor Control Library (AMCLIB) and optimized functions for the family of ARM Cortex M7F core-based microcontrollers.
Quad Motor Control Development Platform Shows how a single i.MX RT1050 Crossover MCU can control up to four different motors, while managing wired or wireless connectivity and an HMI interface.
To learn what to do next, find your issue below. If you still need help, contact NXP Support.
Training | Description |
---|---|
Basic Application Development Using MCUXpresso IDE and MCUXpresso Config Tools | This three-part video series covers the basic interactions between the MCUXpresso IDE and Config Tools when working with either an imported SDK example project or creating a new one. |
MCU Tech Minute- Key Features and Benefits of the i.MX RT series | Short video presentations introduce some of the key features and benefits of the i.MX RT series. |
i.MX RT1010 Training | Full list of on-demand training, how-to videos and webinars from NXP about this product. |
Connect with other engineers and get expert advice on designing with the i.MX RT10xx on one of our community sites.
Product Forums:
Software Forums:
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:
Using the the hello_world demo as an example, the path is located in:
Select the desired build target from the drop-down.
For this example, select the “hello_world – Debug” target.
To build the demo application, click the “Make” button, highlighted in red below.
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:
In IAR, click the "Download and Debug" button to download the application to the target.
The application is then downloaded to the target and automatically runs to the main() function.
Run 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 IMXRT1010 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 demo application workspace in:
The workspace file is named
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:
After the application is properly built, click the "Load" 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.
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 evkmimxrt1010 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 that 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.
MCUXpresso IDE will probe for connected boards and should find the CMSIS-DAP debug probe that is part of the integrated OpenSDA circuit on the MIMXRT1010-EVK. Click on OK to continue.
The firmware will be downloaded to the board and the debugger started.
Open up a terminal program and connect to the COM port the board enumerated as. Use 115200 baud 8 data bits, no parity and 1 stop bit.
Start the application by clicking the "Resume" button:
The 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.
Use the controls in the menu bar to pause, step into and step over instructions and then stop the debugging session by click on the Terminate icon:
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 launchpad.net/gcc-arm-embedded. 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 use 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.
Download the latest MinGW mingw-get-setup installer from sourceforge.net/projects/mingw/files/Installer/.
Run the installer. The recommended installation path is C:\MinGW, however, you may install to any location.
NOTE
The installation path cannot contain any spaces.
Ensure that the "mingw32-base" and "msys-base" are selected under Basic Setup.
Click "Apply Changes" in the "Installation" menu and follow the remaining instructions to complete the installation.
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:
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 pathname of your installation.
Download CMake 3.0.x from www.cmake.org/cmake/resources/software.html
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.
Follow the remaining instructions of the installer.
You may need to reboot your system for the PATH changes to take effect.
To build an example application, follow these steps.
1. If not already running, open a GCC Arm Embedded tool chain command window. To launch the window, from the Windows operating system Start menu, go to “Programs -> GNU Tools Arm Embedded
Change the directory to the example application project directory, which has a path like this:
For this guide, the exact path is:
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:
Make sure that either:
The OpenSDA interface on your board is programmed with the J-Link OpenSDA firmware. If your board does not support OpenSDA, then a standalone J-Link pod is required.
You have a standalone J-Link pod that is connected to the debug interface of your board. Note that some hardware platforms require hardware modification in order to function correctly with an external debug interface.
After the J-Link interface is configured and connected, follow these steps to download and run the demo applications:
This board supports the J-Link debug probe. Before using it, install SEGGER software, which can be downloaded from segger homepage
Connect the development platform to your PC via USB cable between the OpenSDA USB connector and the PC USB connector. If using a standalone J-Link debug pod, also connect it to the SWD/JTAG connector of the board.
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:
115200 baud rate, (reference BOARD_DEBUG_UART_BAUDRATE variable in board.h file)
No parity
8 data bits
1 stop bit
Open the J-Link GDB Server application. Go to the SEGGER install folder, for example, C:\Program Files (x86)\SEGGER\JLink_V632f. 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
The target device selection chosen for this example is the MIMXRT1011xxx5A.
After it is connected, the screen should resemble this figure:
If not already running, open a GCC Arm Embedded tool chain window. To launch the window, from the Windows operating system Start menu, go to “Programs -> GNU Tools Arm Embedded
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:
For this example, the path is:
Run the command “arm-none-eabi-gdb.exe
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.
No problem! Your board simply came in the old packaging and has a different out-of-box demo loaded into the flash memory.
You should be seeing the RGB LED toggling between each of the three colors; red, blue and green. It's OK to move onto the next step when you're ready.
Try proceeding to the next steps to get other example applications running on your board. If you still have problems, try contacting us through the i.MX Community.
Now export the pin_mux.c and pin_mux.h files by clicking on the Sources tab on the right side to get to the Sources view, and selecting the export icon.
Select the directory to export the pin_mux.c and pin_mux.h files. In this example export to the “board” folder in the led_output project in the workspace that was created in the previous section.
(i.e. C:\MCUXpressoIDE_Lab\evkmimxrt1010_driver_examples_gpio_led_output\board). Select Finish.
Select the directory to export the clock_config.c and clock_config.h files. In this example export to the “board” folder in the led_output project in the workspace.
(i.e. C:\MCUXpressoIDE_Lab\evkmimxrt102mx0_driver_examples_gpio_led_output\board). Select Finish.