打印

请教一个关于STM32F207的Flash等待周期的问题

[复制链接]
3695|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
javenreal|  楼主 | 2011-7-28 22:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
官方PDF里说:
with Adaptive real-time accelerator (ART
Accelerator™) allowing 0-wait state execution
performance from Flash memory,

但是实际编程时为什么还是需要加入3个等待周期?

用官方的时钟配置工具自动生成的代码里有加入3个等待周期:
FLASH->ACR = FLASH_ACR_PRFTEN |FLASH_ACR_ICEN |FLASH_ACR_DCEN |FLASH_ACR_LATENCY_3WS;

把这个数字改成2,就运行不了了。

是否因为我用的芯片是“ES”的?
沙发
chinhj| | 2011-7-28 23:20 | 只看该作者
RM0033手册上介绍FLASH章节里有一张表格,上面列出了CPU时钟频率和正确读取FLASH内容所需要的等待周期的关系,运行频率较低时才允许零等待。是否你的是时钟频率比较高所以需要3个等待周期?

使用特权

评论回复
板凳
javenreal|  楼主 | 2011-7-29 08:30 | 只看该作者
找到了,3.3V供电时是: 30 MHz with no Flash memory wait state 。

之前的宣传口号太误导人了。。。。。

使用特权

评论回复
地板
IJK| | 2011-7-29 09:50 | 只看该作者
找到了,3.3V供电时是: 30 MHz with no Flash memory wait state 。

之前的宣传口号太误导人了。。。。。
javenreal 发表于 2011-7-29 08:30


非也,LZ理解有误。

ART加速器的作用并不是让Flash没有等待周期,而是CPU读Flash有几个等待周期的情况下,CPU的运行速度受到的影响很小(比如不到-5%)

使用特权

评论回复
5
javenreal|  楼主 | 2011-7-29 10:12 | 只看该作者
如果遇到判断跳转,加速器应该就失效了吧。但是实际使用中,我相信不可能谁的代码没有跳转的。

使用特权

评论回复
6
IJK| | 2011-7-29 10:34 | 只看该作者
如果遇到判断跳转,加速器应该就失效了吧。但是实际使用中,我相信不可能谁的代码没有跳转的。
javenreal 发表于 2011-7-29 10:12


“如果遇到判断跳转,加速器应该就失效了吧”,不一定,需要看具体情况,如果目标代码在Cache里,就不会损失性能,否则就有性能损失

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

48

帖子

1

粉丝