ThreadX学习(一)--MPU内存保护单元与Cache配置

本文介绍了在STM32H750开发板上使用CUBEMX配置MPU和Cache的详细步骤。实验涉及时钟设置、Cache的四种工作模式以及MPU的背景区域、权限配置等,旨在提升SRAM的读写效率并实现内存保护。
摘要由CSDN通过智能技术生成

一、实验平台

1、STM32H750

2、软件:KEIL、CUBEMX

3、参考资料:安富莱_STM32-V7开发板_用户手册,含BSP驱动包设计(V3.2)(23.24章节)、Cortex-M3权威指南(中文)(第十四章 存储保护单元MPU)、STM32 MPU说明。
4、转载地址:https://www.dianyuan.com/eestar/article-3443.html

二、学习内容:

使用CUBEMX进行MPU、Cache配置,并进行读写实验。

2.1、CUBEMX配置:

1、时钟配置

本次设计中采用外部25M高速时钟,内核时钟在480MHZ。
在这里插入图片描述

2、Cache配置

关于Icache和dcache的说明
在这里插入图片描述
首先对Dcache和icache分别进行使能。是能完成之后在配置MPU保护单元。
在这里插入图片描述

MPU保护单元配置

首先配置MPU的控制模式:背景区域使用特权模式访问,同时硬件错误和NMI,FAULTMASK使能。(2.3、2.4、2.6)

之后对region进行配置,STM32H7共有16个region等级,这里我们只使用0等级。
在这里插入图片描述
下面是等级一的配置:
在这里插入图片描述
1、设置region的首地址和地址空间。

2、配置TEX的等级,即cache的模式配置。关于TEX field配置,一般选择0就可以(详见2.5)。

3、配置内存的通行许可,配置为特权写,非特权读(参考2.7)。

4、配置MPU的指令许可,使能即可。

5、关于cacheable和bufferable都开启即可(2.8)。

2.2 关于cache的说明:

模式配置:

cache在STM32H7中主要为和MPU内存保护单元配合,同时cache可以提高sram的读写速度。在配置时,cache可以被配置为4种模式分别是:
在这里插入图片描述其中在write through模式,为Write through,read allocate,no write allocate,即写操作直接写入sram,读操作通过cache;而Write back模式读写的cache都是开启的,no write allocat和 write allocat的区别,如果使用no write allocat的情况下,若cache中没有相关区域则会直接写入sram,而使用write allocat的话,会数据更新到sram后会将sram的数据再次写入到cache中。

2.3 关于MPU部分解读:

在这里插入图片描述

2.4 关于MPU的背景区域解读:

在这里插入图片描述
关于背景区域,即全部的地址,可以被设置为只可以特权访问和不能被访问。同时需要注意,region的访问等级从高到低排序。使用过程如下图所示。

2.5 关于MPU的TEX配置:

在这里插入图片描述

2.6 关于NMI:

在这里插入图片描述
NMI不可屏蔽中断,不可屏蔽中断的一般使用方式见下。

2.7 关于特权设置

在这里插入图片描述

特权指的是在MPU的设置过程中要设置region,每个region都是特权。

2.8 关于缓冲配置

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值