请教STM32的指令速度问题

[复制链接]
5645|5
 楼主| 电子科技 发表于 2008-11-28 09:45 | 显示全部楼层 |阅读模式
请教STM32-103,我有点想不明白的就是:
1:假如CPU可以在72M下执行指令,那FLASH会在1个时钟周期下取指吗,如果不可以的话,那必然回有等待周期,这样不论你的流水线是怎么设计,那指令还是跑不到72M,不知道我的理解对吗?
2:假如在用外扩的FLASH或RAM中执行指令,那是不是会更慢呀,因为这样还要加入地址选择的周期,比如说我从外扩的FLASH中取指令,然后把数据放到外扩的RAM中。

谢谢大家,我刚打算用这个芯片,不太懂。
香水城 发表于 2008-11-28 10:47 | 显示全部楼层

关于STM32的指令速度问题

关于你的第一个问题,请看我的博客,如有问题然后再讨论。

关于你的第二个问题,你可以参考FSMC的时序图,看看地址选择周期所占用的时间。
相关链接:http://blog.**/STM32/103871/message.aspx
 楼主| 电子科技 发表于 2008-11-28 11:38 | 显示全部楼层

STM32的指令速度问题

香版主:我看过你的**了,谢谢。
1:看来STM32在正常执行指令时,程序在片内FLASH中运行,估计应该可以达到50M左右吧。
2:但是用外部FLASH的话,由于总线服用问题(不太清楚),肯定做不到这样的速度吧,应该会很慢,不过实际中这样的应用不会太多,因为内部的FLASH已经做到512看来。
香水城 发表于 2008-11-28 13:44 | 显示全部楼层

程序放在外部的FLASH里面运行肯定比在内部Flash慢

一般应把程序放在内部Flash,而数据放在外部Flash,前几天就讨论过这个问题,现抄录如下:



原因有三:
1)内部Flash与CPU之间有一个Flash加速器,即使Flash有等待周期,也能够保证CPU的取指不被拖慢。
2)STM32的Cortex-M3核心是指令总线与数据总线分开的所谓哈佛结构,内部Flash在指令总线上,但外部Flash在数据总线上,程序在外部Flash中运行时会与取数据使用相同总线,没有发挥哈佛结构的优势。
3)使用外部总线每次都要经过仲裁线路,这肯定不如使用内部Flash快。


关于第一个问题,综合评估下你的估计差不多,实际可能还会略快10~20%。
 楼主| 电子科技 发表于 2008-11-28 16:50 | 显示全部楼层

不错,谢谢大家

a7_cool 发表于 2009-1-12 12:51 | 显示全部楼层

本人的疑问也等到了解答!

因为本人以前一直都没有用过ARM。用的是TI的tm320f28x系列的DSP较多。为了提高程序的执行速度,必须把程序COPY到RAM中运行,才能发挥100多MHz的DSP内核的性能!因为FLASH的执行速度成为了瓶颈!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

15

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部