概念介绍
-
整个系统中,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();
SCB_EnableDCache();
SCB->CACR|=1<<2;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)