打印

求助:STM32预取指缓存功能的作用

[复制链接]
9011|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
leshak|  楼主 | 2012-8-10 11:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
库函数里提到了预取指缓存使能,FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
请问这个函数的具体功能实现的是什么。。。。
  在资料里没找到相关说明,麻烦大侠解答下。。。。
沙发
IJK| | 2012-8-10 12:23 | 只看该作者
看reference manual,里面应该有。
另外,看看相关的PPT,应该更好理解。

使用特权

评论回复
板凳
香水城| | 2012-8-10 12:24 | 只看该作者
不知道你指的具体哪块芯片

PREFETCH是预取址,每个系列的预取址数目都是不同的,具体需要看每个系列的Programming Manual

使用特权

评论回复
地板
airwill| | 2012-8-10 12:26 | 只看该作者
使能预取指缓存
通常不用去管它, 因为系统启动里调用的 SystemInit() 已经设置了使能预取指缓存:

    /* Enable Prefetch Buffer and set Flash Latency */
    FLASH->ACR = FLASH_ACR_PRFTBE | FLASH_ACR_LATENCY;

使用特权

评论回复
5
leshak|  楼主 | 2012-8-10 13:07 | 只看该作者
好的,谢谢大家的提醒,我先按照各位大大的意见查阅下资料先.....

使用特权

评论回复
6
TEA_WAVE| | 2015-10-8 12:04 | 只看该作者
就是使能FLASH指令缓冲器,用于当CPU主频提升后缓存多条指令已避免CPU等待FLASH传数据导致的时间浪费
“预取缓冲区(2个64位):在每一次复位以后被自动打开,由于每个缓冲区的大小(64位)与闪存的带宽相同,因此只通过需一次读闪存的操作即可更新整个缓冲区的内容。由于预取缓冲区的存在,CPU可以工作在更高的主频。CPU每次取指最多为32位的字,取一条指令时,下一条指令已经在缓冲区中等待。”
具体寄存器配置参见:PM0075:STM32F10xxx Flash memory microcontrollers(Flash编程手册)

使用特权

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

本版积分规则

101

主题

522

帖子

4

粉丝