如果CPU要写的SRAM区数据在Cache中已经开辟了对应的区域(专业词汇叫Cache Line,以32字节为单位),这就叫写命中(Cache hit),如果Cache里面没有开辟对应的区域怎么办,这就是所谓的写Cache Miss。 24.3 支持的Cache配置 (这个知识点在上一章节进行了详细说明,这里再简述下核心内容) Cache的配置是通过MPU来设置的,通常...
CACHE和MPU一般都是要结合在一起使用的,因为MPU可以保护对RAM的访问。 下面是一个RAM的MPU保护配置。 1.首先是配置MPU时需要先关闭MPU。 2.MPU_InitStruct.Enable 可以赋值是为MPU_REGION_ENABLE、MPU_REGION_DISABLE,分别代表这个区域的MPU是否启用。 3.MPU_InitStruct.Number 可以赋值MPU_REGION_NUMBER0、MPU_RE...
一、Cache 1、介绍 Cache又分数据缓存D-Cache和指令缓冲I-Cache,STM32H7的数据缓存和指令缓存大小都是...
如果CPU要写的SRAM区数据在Cache中已经开辟了对应的区域(专业词汇叫Cache Line,以32字节为单位),这就叫写命中(Cache hit),如果Cache里面没有开辟对应的区域怎么办,这就是所谓的写Cache Miss。二、支持的Cache配置:Cache的配置是通过MPU来设置的,通常只用到下几种方式。其中的TEX是用来设置Cache策略的,C是...
24.4 四种Cache(MPU)配置的读写操作流程 24.4.1 配置Non-cacheable 这个最好理解,就是正常的读写操作,无Cache。 对应四种MPU配置如下: TEX = 000 C=0 B=0 S=忽略此位,强制为共享 TEX = 000 C=0 B=1 S=忽略此位,强制为共享 TEX = 001 C=0 B=0 S=0 ...
本章节为大家讲解STM32H7学习中的一个重要知识点MPU(Memory Protection Unit,内存保护单元),早在STM32F1和F4芯片上面也是有这个功能的,但是基本用不上。但是到了H7就得用上了,因为要设置Cache。 23.1 初学者重要提示 23.2 MPU简介 23.3 MPU的功能实现
本章节为大家讲解STM32H7学习中的一个重要知识点MPU(Memory Protection Unit,内存保护单元),早在STM32F1和F4芯片上面也是有这个功能的,但是基本用不上。但是到了H7就得用上了,因为要设置Cache。 23.1 初学者重要提示 23.2 MPU简介 23.3 MPU的功能实现
1、 Non-cacheable 这个最好理解,就是正常的读写操作,无Cache。 (1)对应四种MPU配置如下: TEX = 000 C=0 B=0 S=忽略此位,强制为共享 TEX = 000 C=0 B=1 S=忽略此位,强制为共享 TEX = 001 C=0 B=0 S=0 TEX = 001 C=0 B=0 S=1 ...
23.3 MPU的功能实现 MPU可以配置保护16个内存区域(这16个内存域是独立配置的),每个区域最小要求256字节,每个区域还可以配置为8个子区域。由于子区域一般都相同大小,这样每个子区域的大小就是32字节,正好跟Cache的Cache Line大小一样。 MPU可以配置的16个内存区的序号范围是0到15,还有默认区 default region,也叫作...
DMA不能与DTCM 交互,只能与SRAM进行交互,传输数据,所以建议大家在刚开始使用时将Cache和MPU和DTCM地址先关掉,先使用SRAM地址,后续会说明如何配置Cache和MPU,还有将DMA相关变量搬运至SRAM,其他变量在DTCM上运行。 关于关闭Cache和MPU可以参考我第一期写的文章CubeMX的配置部分STM32H7系列FDCAN配置成经典CAN的经验教程和...