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

最低0.47元/天 解锁文章
1468

被折叠的 条评论
为什么被折叠?



