一段有关MPU配置代码的几个小疑问

本文探讨了STM32F7或STM32H7在配置MPU时的常见疑问,包括初始化4GB空间为Strongly Ordered属性的目的、子区(SubRegion)的排除设置以及为什么需要这样的初始化。文章解释了MPU配置如何处理地址重叠和防止试探性访问带来的问题,强调了初始化配置对外部存储器空间的重要性,以及其对系统安全的预防作用。
摘要由CSDN通过智能技术生成

fdf442be17fc5375d4bef262015ed24a.jpeg

当我们阅读一些STM32F7STM32H7系列芯片例程,或者基于这两类芯片通过cubeMx进行配置并用到MPU功能时,往往会在代码里看到下面这段MPU配置。

d0bbd56bae52eb19eb49721911eb274d.png

对这段代码可能有人有些疑问,这里重点一起聊聊其中的3个,供参考。

第一个疑问,那行做赋值0x87的代码是什么意思?

第二个疑问,这段代码的注释【绿色】是说将未定义的区域配置为Strongly Ordered存储属性,这个未定义到底如何理解?从代码看,这里清晰地对从0开始的整个4G空间做了配置,未定义区域到底指的哪里?

第三个疑问,这段代码往往并不是开发者自己配置的。如果使用CubeMx进行配置它会自动给我们加上这段,为什么要加这段?很多时候经测试,即使没这段代码似乎也没有什么问题。

这几个问题,涉及到MPU和Cortex M7内核芯片试探性访问的知识。我尽量通俗地加以介绍,知晓怎么回事即可。

我们知道,通过MPU可以配置特定地址空间的存储属性,给CPU约定访问权限。我们在对某块地址空间做MPU配置时,通常需要设置起始地址、空间大小、CacheableBufferableShareable子区属性、区块编号等。这里的地址空间,英文用Region来特指,后面都使用该词。

实际应用中我们往往会针对不同的Re

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值