一、MPU的作用- 防止不受信用的应用程序访问受保护的内存区域
- 防止用户应用程序破坏操作系统使用的数据
- 通过阻止任务访问其他任务的数据区
- 允许将内存区域定义为只读,以便保护重要数据。
- 检测意外的内存访问
简单来说,就是内存保护、外设保护和代码访问保护。
二、MPU的功能实现 MPU可以配置保护16个内存区域,每个区域都是独立配置的。每个区域的最小要求是32字节,同时每个区域还可以配置为8个子区域,通过寄存器对应的bit来使能。
MPU可配置的16个内存区的序号范围是0-15,还有一个默认区(背景区)序号为-1,这些内存区可以重叠以及嵌套——序号为15的优先级最高、背景区的优先级最低。例如下图,共有七个内存区:一个背景区+序号为0-5的内存区。内存区4和内存区0、1有重叠部分,则重叠部分按照内存区4的配置规则执行;内存区5被完全包含在内存区3里面,则这部分内存区的配置按照内存区5的配置规则进行。
|