嵌入式--->ICache DCache

概念介绍

  • 整个系统中,CPU的供应链由:寄存器+cache+DDR+硬盘/flash 四阶组成

  • Cache 它是一种内存,虽然目前接触了好几种内存,寄存器,DDR等,它们在物理上的工作原理虽然不同,但是访问属性却很像。

    • 在速度上
      CPU > 寄存器 > Cache > DDR
    • 在容量上
      CPU < 寄存器 < Cache < DDR
  • ICache (instruction cache)是指令高速缓冲存储器。 Cache存储体:存放由主存调入的指令与数据块.用来缓存指令,目前icache的一切都是自动的,不需要我们去做什么。我们只需要打开或者关闭icache。

  • DCache(data cache):数据高速缓冲存储器,dcache用的前提是mmu要启动。

实际使用

  • 参考CMSIS—>core_cm7.h中的API
    __STATIC_INLINE void SCB_EnableICache (void)
    __STATIC_INLINE void SCB_DisableICache (void)
    __STATIC_INLINE void SCB_InvalidateICache (void)
    __STATIC_INLINE void SCB_EnableDCache (void)
    __STATIC_INLINE void SCB_DisableDCache (void)
    __STATIC_INLINE void SCB_InvalidateDCache (void)
    __STATIC_INLINE void SCB_CleanDCache (void)
    __STATIC_INLINE void SCB_CleanInvalidateDCache (void)
    
  • ICache & DCache 的初始化要在程序的最开始(驱动初始化之前)
  • 建议开启DChch透写,不然可能会在使用中遇到各种问题
    SCB_EnableICache();//ʹÄÜI-Cache
    SCB_EnableDCache();//ʹÄÜD-Cache    
    SCB->CACR|=1<<2;   //Ç¿ÖÆD-Cache͸д,Èç²»¿ªÆô,ʵ¼ÊʹÓÃÖпÉÄÜÓöµ½¸÷ÖÖÎÊÌâ
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值