支持 XIP (eXecute In Place) 的 NOR QSPI FLASH 芯片有很多。在这种模式下,嵌入式 CPU(或 MCU)可以直接执行存储在闪存中的代码。但众所周知,qspi flash每个周期只能输出4位数据,而很多MCU,比如ARM Cortex-M系列,每个周期需要32位指令。所以单片机必须至少等待8个周期才能得到一条有效指令,这看起来很慢。此外,nor qspi flash芯片的最高频率通常低于150MHz,而STM32F407的频率为168MHz,这意味着cpu接收有效指令的延迟更长。
不知道是不是我的理解有误,但是关于XIP我实在是找不到太多的细节。STM32Fxxx的Techinal Reference Manuals只说他们有嵌入式flash并支持XIP,但没有给出任何细节。此外,我想我们还需要在 MCU 中实现一个非常复杂的 QSPI 控制器来支持 XIP。
谁能给我一些关于这个问题的指导?