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 Rev | DAPLink MCU | GIT SHA from details.txt file | NOTE |
|---|
| EVK_A2 | MK20 | 34182e2cce4ca99073443ef29fbcfaab9e18caec | DAPLink will add FCB and IVT |
| EVK_A3-EVK-A5 | MK20 | 853df431d81359e822f49363891f877f17d31efb | DAPLink will add FCB and IVT |
| EVKB_A | MK20 | 853df431d81359e822f49363891f877f17d31efb | DAPLink will add FCB and IVT |
| EVKB_A1 | MK20 | 853df431d81359e822f49363891f877f17d31efb | DAPLink will add FCB and IVT |
| EVKB_A1 | MK20 | b3435dbed0ba4f09680e49d2fcfdaab32c7a4c71 | DAPLink 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.MXR...
Refer to AN12107 for more information:
https://www.nxp.com/docs/en/application-note/AN12107.pdf?fsrch=1&sr=2&pageNum=1