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:
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:
Refer to AN12107 for more information:
https://www.nxp.com/docs/en/application-note/AN12107.pdf?fsrch=1&sr=2&pageNum=1
The drag and drop is working only with bin file, so how to produce correct bin file from MCUXpresso ?
This post has directions on how to generate a binary from MCUXpresso:
https://community.nxp.com/thread/448048
Regards,
Melissa
I am using iMXRT1050 EVKB Rev-A and trying to validate hello_world example using drag & drop feature by following steps mentioned in the above post but my board is not working after flashing the binary file of hello_world example.
Setup:
IDE: IAR-8.22.2
Build configuration: flexspi_nor_debug
SDK: v2.4.0
Example: hello_world
Hi,
I think you're running into a mismatch between the SDK you are using and the DAPLink firmware revision. If you refer to the table revision table above, you'll see that the default EVKB revA DAPLink application wants to add and FCB and DCD to the application, but the SDK2.4.0 project you are using already includes them by default. Try upgrading your DAPLink application to the latest version. The latest DAPLink won't try to add the FCB and DCD, so it should work with the SDK2.4.0 hello_world output.
Regards,
Melissa
Hi Melissa,
I have only the old version EVK_A3-EVK-A5. Where can I download the old DAPLink firmware?
Thanks a lot.
Best Regards,
Kent
Hi Kent,
We don't keep the old firmware revisions posted. You should be able to use the latest and greatest version of the DAPLink firmware on your board.
Regards,
Melissa
Hi Mellissa,
I can't drag-and-drop programming for QSPI flash but I can program the QSPI flash via IAR IDE with the latest QSPI DAPLink firmware.
Could you advise?
Thanks a lot.
Best regards,
Kent
Hi Kent,
Can you let me know what version of the DAPLink firmware you are using (the git sha number from details.txt)? Assuming you are using our SDK, what version are you using?
Also, have you reworked your board for QSPI instead of Hyperflash? Did you make sure to use the DAPLink firmware for the memory you are using? Both versions are posted on the openSDA site.
Regards,
Melissa
Hi Melissa,
I use the DAPLink firmware "k20dx_mimxrt1050_evk_qspi_if_crc.bin". and the DAPLink Git SHA: b3435dbed0ba4f09680e49d2fcfdaab32c7a4c71.
The SDA version is 2.4.0
I have followed the AN12183 to rework my board for QSPI flash and it can be programmed by the IAR IDE successfully. But I cannot drag-and-drop programming for QSPI.
I got the error message as below.
Best Regards,
Kent
Hi Kent,
This is a known issue with the latest version of the QSPI DAPLink application. We are working to get an update posted that fixes the problem. In the meantime, I recommend sticking with programming through the IAR IDE.
Regards,
Melissa