Hi everyone,
I tried to run the hyper flash polling transfer example in the sdk_2.3.0_evk-mimxrt1050 on the MIMXRT1050-EVK board. I ran it in the debug mode, with no XIP. The code ran as expected. But when I changed it to a XIP project, it didn't work as expected. It just resets itself.
Looking at the code, I found a FLEXSPI_SoftwareReset function, which does a software reset. As a result whenever the code is run, it enters a loop where it resets itself. This function is called many times (during init, after flash erase, after flash program).
Since the code is running as XIP, I'm not sure, if we have to again initialize the FLEXSPI module, as in fsl_flexspi_nor_flash.c (in the XIP folder), I saw some FLEXSPI configurations.
How do we run the example code as XIP? Do we need to skip the initializations...?
Hi Twinkle
you are right, as xip code is running from flash, all flexspi initializations should be implemented before running test.
Also as this example erases flash, seems it is necessary to pay attention that xip code was not erased by test.
If the code is executed from hyperflash, image requires a header for the internal ROM to boot the image.
If the header is not present, the image will not boot after reset. The hello_world_xip demo in the SDK
has an example of how to build the image.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------