2

STM32H7 CubeMX 默认MPU配置记录

 1 year ago
source link: https://www.taterli.com/8824/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

STM32H7 CubeMX 默认MPU配置记录

STM32H7 CubeMX 默认MPU配置记录

最近用Cube打算生成一些代码时候发现生成过程会提示是否启用MPU.

当启用后生成默认的配置.

image.png

可以看出除了设置了背景区(MPU在HardFault时关闭,默认特权模式全部可以访问),还额外设置了一个区,覆盖了差不多整个4GB.

而STM32本身配置是分开了8个大区域.

  • 0x00000000 - 0x1FFFFFFF => 代码区
  • 0x20000000 - 0x3FFFFFFF => RAM区
  • 0x40000000 - 0x5FFFFFFF => 外设区
  • 0x60000000 - 0x7FFFFFFF => FMC(NOR/PSRAM/SRAM)区
  • 0x80000000 - 0x9FFFFFFF => FMC(NAND/QSPI)区
  • 0xA0000000 - 0xBFFFFFFF => 外部设备(保留)区
  • 0xC0000000 - 0xDFFFFFFF => 外部设备(SDRAM)区
  • 0xE0000000 - 0xFFFFFFFF => 保留区

其中加粗的区域就是0x87覆盖的区域,他应用背景设置,其中代码区实际常用于写入就只有ITCM,策略是WT(写穿),而RAM区由于访问比较缓慢,默认是WB(写回,写分配)策略,这样保证每次访问时候都是最高性能,但是有缓存一致性问题,外社区不用想必然要写到做到,强顺序,而FMC和外部设备默认都是没有的,所所以这里用了一个默认策略覆盖,当然我们也可以自己定义,FMC(NOR/PSRAM/SRAM)区和片内SRAM策略一样,而NAND和QSPI通常不会怎么修改,因此默认策略和代码区一样,外部设备区和内部设备的配置一样.由于默认没这些设备,所以Cube默认配置不允许访问他们,这也算是保护不要乱放问到不该访问的地方吧,至于最后一个保留区为什么会被排除,在手册中也没找到所以然.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK