i.MX RT1050 CMSIS-DAP drag-and-drop programming

Document created by Melissa A Hunter Employee on Feb 6, 2018Last modified by Melissa A Hunter Employee on Jul 31, 2018
Version 6Show Document
  • View in full screen mode

The MIMXRT1050-EVK includes a CMSIS-DAP/DAP-Link interface that includes MSD drag and drop functionality for the HyperFlash on the board. The drag and drop programming functionality can be used to program applications compiled to execute-in-place (XIP) from the HyperFlash memory.

 

In the early SDK versions for RT1050, the projects did not include the flash configuration block and IVT required to make a bootable image across all toolchains. Starting with the SDK 2.3.1 release, projects include XIP files that add this information to the project. This allows for programming a bootable application to the external flash memory directly from the debugger, so many customers might not even need to use the drag-and-drop programming feature any more.

 

Because of the SDK changes, the DAP-Link application has also had changes:

  • Early versions of the DAPLink firmware were setup to work with a raw application binary like those generated by the SDK 2.3.0 for toolchains other than the MCUXpresso IDE. These versions will take the raw application binary and prepend the flash configuration block for the HyperFlash/QSPI and an IVT to make a bootable image.
  • Newer version of the DAPLink firmware are setup to work with a complete bootable binary like those generated by SDK 2.3.1 and later. These versions will not attempt to prepend a flash configuration block and IVT to the application, because these are assumed to already be present.

 

The following table describes the versions of the DAPLink application that have been released. NOTE: the firmware can be updated on the board, so the version on a given board might not match what was originally programmed at manufacture time. The latest version of firmware can be downloaded from www.nxp.com/opensda

 

Board RevDAPLink MCUGIT SHA from details.txt fileNOTE
EVK_A2MK2034182e2cce4ca99073443ef29fbcfaab9e18caecDAPLink will add FCB and IVT
EVK_A3-EVK-A5MK20853df431d81359e822f49363891f877f17d31efbDAPLink will add FCB and IVT
EVKB_AMK20853df431d81359e822f49363891f877f17d31efbDAPLink will add FCB and IVT
EVKB_A1MK20853df431d81359e822f49363891f877f17d31efbDAPLink will add FCB and IVT
EVKB_A1MK20b3435dbed0ba4f09680e49d2fcfdaab32c7a4c71DAPLink will NOT add FCB and IVT

 

To use the drag and drop programming:

 

1. Configure the board for serial downloader mode by setting SW7 to OFF-ON-OFF-ON. 

2. Press SW3 to reset the processor.

3. Drag the application binary to the RT1050-EVK drive. 

4. Put the board back in internal boot mode by setting SW7 to OFF-ON-ON-OFF.

5. Press SW3 to reset the processor and your application should boot.

 

 

 There are some limitations to the drag and drop programming to keep in mind:

 

- Only works for Hyperflash/QSPI XIP applications. Doesn't support copying the code from HyperFlash to another memory (like ITCM) for execution

- Application initial stack pointer must be located in DTCM

- Doesn't support DCD files

 

 

The flashloader and ROM tools offer a second external memory programming method where the limitations above do not apply:

https://www.nxp.com/downloads/en/initialization-boot-device-driver-code-generation/Flashloader_i.MXRT1050_1.0_GA.zip 

 

Refer to AN12107 for more information:

https://www.nxp.com/docs/en/application-note/AN12107.pdf?fsrch=1&sr=2&pageNum=1 

1 person found this helpful

Attachments

    Outcomes