单片机/MCU论坛
直播中

李麒铭

7年用户 1402经验值
私信 关注
[问答]

m480在spiflash跑程序要比在内部flash跑慢100倍是为什么?

在spiflash跑要比在内部flash要慢100倍。cache打开和不开速度都是一样。遇到的,指点一下

回帖(1)

马占云

2024-1-16 16:55:33
在将程序运行在SPI闪存(spiflash)上时,相比于内部闪存,速度慢100倍的原因通常有几个可能的解释。

1. 存取速度:SPI闪存与内部闪存的存取速度不同。SPI闪存通过SPI接口进行访问,相比于内部闪存,它需要更多的时钟周期和额外的通信开销来完成读写操作,因此速度较慢。

2. SPI闪存与处理器之间的通信带宽:SPI闪存和处理器之间的通信带宽相对较低。不同于内部闪存与处理器之间直接的高速总线连接,SPI闪存的通信速率较低,可能成为程序运行慢的瓶颈。

3. 内存访问速度:SPI闪存中的程序代码需要加载到内存中,然后再被处理器执行。相比之下,内部闪存通常直接与处理器相连,无需复制代码,因此内部闪存的访问速度会更快。

4. 缓存失效:正如您提到的,无论是否开启缓存(cache),程序在SPI闪存上运行的速度都是相同的。这可能是因为处理器的缓存不适用于SPI闪存,因此无法提高其访问速度。

基于以上原因,将程序运行在SPI闪存上会导致较慢的执行速度。如果您希望加快程序的执行速度,可以考虑将程序代码迁移到内部闪存中,以提高存取速度和通信带宽。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分