Skip to content

Latest commit

 

History

History
11 lines (9 loc) · 941 Bytes

50_MPU 内存保护功能说明.md

File metadata and controls

11 lines (9 loc) · 941 Bytes

ARM-MPU 内存保护说明

MPU 是一个可以编程的 device 设备,可以用来定义内存空间的属性,比如特权指令和非特权指令以及 cache 是否可访问,armv7-m 通常支持 8 个 region,一个 region 就代表一段连续的区域。MPU 可以让嵌入式系统更加健壮,以及保护一些加密区域,MPU 有以下能力可以增加系统的健壮性:

  • 可以阻止用户去破坏操作系统需要使用的数据
  • 可以防止一个任务去非法访问其他任务的数据,将任务完全隔离开
  • 可以把关键数据区设为只读,从而不被破坏
  • 检测其他意外访问,比如,堆栈溢出,数组越界等
  • 避免应用任务破坏其他任务或者 OS 内核使用的栈或数据存储器
  • 避免非特权任务访问对系统可靠性和安全性很重要的外设
  • 将 SRAM 或者 RAM 定义为不可执行(永不执行,XN),可以防止代码注入攻击