From SEGGER - Support Wiki
Jump to: navigation, search

Flash Programming

NXP's iMXRT105x family features a Cortex-M7 core without internal flash but with support for QSPI and HyperFlash through a so called FLEXSPI controller. NXP's official evaluation board, the MIMXRT1050 EVK is shipped with a 512Mbit Hyper Flash device by default. Alternatively, a QSPI flash can be mounted but several board modifications (removing the hyper flash, adding resistors, etc...) are required. As both flashes are accessed through the same memory mapped address space, either the HyperFlash or the QSPI flash RAMCode needs to be used for memory accesses to this area. Please find below further information how to enable the desired flash algorithm (RAMCode).

Enable Flashloader

Hyper Flash

By default, the Hyper Flash algorithm is selected in the J-Link software. No additional steps are required.

QSPI flash

To enable the QSPI flash support in the J-Link software, the JLinkDevices.xml needs to be modified. For further information regarding the JLinkDevices.xml, please refer to the Open Flashloader chapter in the J-Link User Manual (UM08001).

  1. Open the JLinkDevices.xml (e.g. C:\Program Files (x86)\SEGGER\JLink_V631d\JLinkDevices.xml
  2. Search the desired iMXRT <Device> entry
  3. Change Loader="Devices/NXP/iMXRT105x/NXP_iMXRT105x_HyperFlash.elf" to Loader="Devices/NXP/iMXRT105x/NXP_iMXRT105x_QSPI.elf"
  4. Save the JLinkDevices.xml

From now, the J-Link software uses the QSPI RAMCode instead of the HyperFlash RAMCode for the flash download.

NOTE: Please note that several hardware modifications needs to be done on the evaluation board to enable QSPI programming / booting from QSPI. For further information regarding this, please refer to NXPs board user manual.


The example projects below can be used to evaluate Hyper Flash and QSPI Flash programming support with J-Link using a simple blinky project. The project includes the boot header, required for booting the application without an external debugger attached to it. Please find below an overview of the setup:

  • SEGGER Embedded Studio for ARM 3.35
  • NXP MIMXRT1050-EVK (Hyper Flash configuration)
  • J-Link software version V6.31d

Hyper Flash

  1. Make sure that SEGGER Embedded Studio for ARM 3.35 is installed
  2. Install at least J-Link software version V6.31d and update the J-Link DLL used by Embedded Studio at the end of the setup process (using the J-Link DLL Updater)
  3. Download the project File:NXP MIMXRT1050-EVK HyperFlash
  4. Open the project in Embedded Studio
  5. Done!

QSPI Flash