System hangs with simultaneous QSPI file access and XiP execution

cancel
Showing results for 
Search instead for 
Did you mean: 

System hangs with simultaneous QSPI file access and XiP execution

Jump to solution
209 Views
Contributor IV

I have a K8x with a single-die 16MB QSPI flash module.  The QSPI memory layout is arranged with a section for XiP code, and another section for a file system.  If a function in internal flash accesses the file system, then everything works fine. Functions on external flash that do not access the file system also run without a problem.  However, if a function on QSPI flash attempts to access the file system, also on QSPI flash, then the system hangs.  In the debugger I see that the QSPI busy bit (BOARD_QSPI_BASE->SR & QuadSPI_SR_BUSY_MASK) remains set, forever.

How can this be overcome?

Labels (1)
1 Solution
3 Views
NXP TechSupport
NXP TechSupport

Hi Denis,

 

Unfortunately, what you are trying to do is not possible. Accessing the file system at the same time the code is running from the QSPI memory it is a limitation of XiP.

 

For implementing this you will have to execute the function from internal flash or either copy the function to ram and execute it from there.

 

Best regards,

Felipe

View solution in original post

2 Replies
4 Views
NXP TechSupport
NXP TechSupport

Hi Denis,

 

Unfortunately, what you are trying to do is not possible. Accessing the file system at the same time the code is running from the QSPI memory it is a limitation of XiP.

 

For implementing this you will have to execute the function from internal flash or either copy the function to ram and execute it from there.

 

Best regards,

Felipe

View solution in original post

3 Views
Contributor IV

Hi Felipe,

I found a similar discussion - RT1050 QSPI Flash Limitations - which confirms your answer.  I'm assuming that memory-mapped reads from the file-system will be okay, and it's just the functions that control erase- and write-cycles that must be located in RAM or internal flash.

Thanks,

Denis