System hangs with simultaneous QSPI file access and XiP execution

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

System hangs with simultaneous QSPI file access and XiP execution

跳至解决方案
2,182 次查看
deniscollis
Contributor V

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?

标签 (1)
标记 (6)
1 解答
1,976 次查看
FelipeGarcia
NXP Employee
NXP Employee

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

在原帖中查看解决方案

2 回复数
1,977 次查看
FelipeGarcia
NXP Employee
NXP Employee

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

1,976 次查看
deniscollis
Contributor V

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