关于bin文件烧录在flash中的运行速度比ram慢的问题

使用外挂的spi flash,那么在烧在flash中的程序应该会被复制到ram中运行,既然都到了ram中运行了,为什么还会比ram慢了很多很多呢? 是因为什么造成了这样的结果?
我猜测是 从flash向ram复制的过程中,并不是全部复制了过去,而是一点一点的复制过去,复制到ram里一点,就运行一点,复制一点,运行一点,所有就会很慢,被spi flash的读写速度限制住了
请大佬们帮忙提示一下,谢谢

这得看是什么处理器了。
有的处理器会将片外flash上的代码全部复制到内部ram上运行,那样速度就会很快;
而有的处理器直接就会将片外QSPI Flash映射当作运行flash,比如ST的高级点的芯片,那么这个时候就是通过QSPI去访问代码,并不会将代码复制到内部RAM上运行,那么这种执行速度就完全依赖于QSPI通信速度,自然会比RAM慢。
一般是否复制到内部ram只有两种选择:全部复制或者不复制,不会复制一点执行一点,那样会更慢。

1 个赞