Cortex-M7——Cache

Cortex-M7——Cache

小狼@http://blog.youkuaiyun.com/xiaolangyangyang


1、M7 Cache基本参数

ARM Cortex-M系列从M7内核才开始有的Cache,M7 Cache参数如下:

  • Cache Level:L1
  • ICache Size:32K,2-way set-associative
  • DCache Size:32K,4-way set associative
  • Cache Line:32B

这样节省地址标签,不用每个行都标记一个地址。

2、M7 Cache处理函数(core_cm7.h)

SCB_EnableICache()
SCB_DisableICache()
SCB_InvalidateICache()
SCB_EnableDCache()
SCB_DisableDCache()
SCB_InvalidateDCache()
SCB_CleanDCache()
SCB_CleanInvalidateDCache()
SCB_InvalidateDCache_by_Addr()
SCB_CleanDCache_by_Addr()
SCB_CleanInvalidateDCache_by_Addr()

3、M7 Cahce处理函数原型

SCB_EnableICache

__STATIC_INLINE void SCB_EnableICache (void)
{
  #if defined (__ICACHE_PRESENT) && (__ICACHE_PRESENT == 1U)
    __DSB();
    __ISB();
    SCB->ICIALLU = 0UL;                     /* invalidate I-Cache */
    __DSB();
    __ISB();
    SCB->CCR |=  (uint32_t)SCB_CCR_IC_Msk;  /* enable I-Cache */
    __DSB();
    __ISB();
  #endif
}

SCB_DisableICache

__STATIC_INLINE void SCB_DisableICache (void)
{
  #if defined (__ICACHE_PRESENT) && (__ICACHE_PRESENT == 1U)
    __DSB();
    __ISB();
    SCB->CCR &= ~(uint32_t)SCB_CCR_IC_Msk;  /* disable I-Cache */
    SCB->ICIALLU = 0UL;                     /* invalidate I-Cache */
    __DSB();
    __ISB();
  #endif
}

SCB_InvalidateICache

__STATIC_INLINE void SCB_InvalidateICache (void)
{
  #if defined (__ICA
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值