一些嵌入式系统使用多任务的操作和控制。这些系统必须提供一种机制来保证正在运行的任务不破坏其他任务的操作。即要防止系统资源和其他一些任务不受非法访问。嵌入式系统有专门的硬件来检测和限制系统资源的访问。它能保证资源的所有权,任务需要遵守一组由操作环境定义的、由硬件维护的规则,在硬件级上授予监视和控制资源程序的特殊权限。受保护系统主动防止一个任务使用其他任务的资源。因此使用硬件主动监视系统比协调加强的软件历程,提供了更好的保护。

内存保护单元(MPU)是ARM中配备的有效保护系统资源硬件的一种,提供了内存区域保护功能。

MPU功能

(1)保护内存区域。

ARM处理器中的MPU使用“域(regions)”来对内存单元进行管理。域是与存储空间相关联的属性,处理器核将这些数据保存在协处理器CP15的一些寄存器中。通常域的个数为8个,编号为从0~7。

域的大小和起始地址保存在CP15的寄存器c6中。大小可以是4KB~4GB的任何2的乘幂。域的起始地址必须是其大小的倍数。比如,一个定义为4KB的域其起始地址可以是0x12345000,而一个大小定义为8KB的域起始地址只能是0x2000的倍数。

(2)将保护区域重叠。

对于ARM处理器,存储空间的某一部分可以被分配给一个以上的区域。也就是说域可以重叠。在重叠的域内,可以设置域的优先级。在分配访问权限时重叠域比非重叠域有更大的灵活性。

(3)控制访问权限。

操作系统可以为这些域分配更多的属性:访问权限、cache和写缓存。存储器基于当时的处理器模式(管理模式或用户模式)可以设定这些区域的访问权限为读/写、只读和不可访问。

当处理器访问主存的一个域时,MPU比较该域的访问权限属性和当时的处理器模式。如果请求符合域的访问标准,则MPU允许内核读/写主存;如果存储器请求不符号域的访问标准,将产生一个异常信号。

(4)将存储器属性输出到系统。

异常信号被送到处理器核。处理器核执行一个异常向量,然后跳转到异常处理程序,异常处理程序判断异常类型为预取指或数据中止,然后根据异常类型,跳转到相应的服务例程。

MPU工作原理

当ARM处理器产生一个内存访问信号时,内存保护单位MPU将负责检查要访问的地址是否在被定义的域中。

1、如果地址不在任何域中,存储器产生异常。如果内核预取指令则MPU产生预取中止异常;如果是存储器数据请求,则产生数据中止异常。

2、如果地址在多个域内,由MPU判断域的有效级来决定存储区域的访问属性。访问属性可以在CP15的寄存器中设定,可设定的位为C(Cache)、B(Buffer)、AP(Access Permission)。

这些属性的具体定义为:

· C和B可以控制Cache和写缓存属性的Cache策略。例如,可以设置一个域使用回写(write-back)策略访问存储器,而另一个域则以无Cache和无写缓存方式访问;

· AP(access permission)决定域是否可以被访问。如果在当前处理器模式下,该域不能被访问,MPU将产生一个存储器访问异常。

打开APP精彩内容

点击阅读全文

mpu 配置内存空间_mpu内存保护单元功能及工作原理相关推荐

  1. mpu 配置内存空间_PCIE的内存地址空间、I/O地址空间和配置地址空间

    pci设备与其它接口的设备(如i2c设备)最大的不同是存在内存地址空间和配置地址空间 首先区分一下IO空间和内存空间 cpu会访问的设备一般有内存和外设寄存器,如下图所示.x86架构采用独立编址将内存 ...

  2. mpu 配置内存空间_ARM存储器之:存储保护单元MPU

    本文引用地址:http://www.eepw.com.cn/article/257010.htm 15.4.2内存访问顺序 当ARM处理器产生一个内存访问信号时,内存保护单位MPU将负责检查要访问的地 ...

  3. nginx 判断手机端跳转_nginx基本功能和工作原理

    nginx能做什么 反向代理正向代理负载均衡HTTP服务器(包含动静分离)反向代理和正向代理1.正向代理 简单的说,我是一个用户,我无法直接访问一个网站,但是我能访问一个代理服务器,这个代理服务器能访 ...

  4. 路由器的功能及工作原理

    路由器功能及工作原理 1.路由器的工作原理 路由概述 路由器的工作原理 2.路由表的形成 3.静态路由和默认路由 静态路由 默认路由 4.路由器转发数据包的封装工程 5.静态路由和默认路由的配置 1. ...

  5. 控制器的功能和工作原理

    文章目录 控制器的功能和工作原理 硬布线控制器 硬布线控制器的设计 组合逻辑设计 微程序控制器 设计思路 基本结构 工作原理 微指令的格式 水平型微指令的三种方式 微指令的地址形成方式 小结 微程序控 ...

  6. Zookeeper的功能以及工作原理

    2019独角兽企业重金招聘Python工程师标准>>> 1.ZooKeeper是什么? ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubb ...

  7. Zookeeper的功能以及工作原理 (转自:http://www.cnblogs.com/felixzh/p/5869212.html)

    1.ZooKeeper是什么? ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交 ...

  8. 计算机电源的功能,电源屏主要功能及工作原理

    电源屏主要功能: 铁路信号智能电源屏专门为铁路信号设备供电的装置,信号负载电源类型主要有信号点灯电源.道岔表示电源.轨道电路电源.局部电源.直流转辙机电源.继电器电源.微机监测电源.交流转辙机电源.计 ...

  9. zbb20180929 zk Zookeeper的功能以及工作原理

    1.ZooKeeper是什么? ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交 ...

最新文章

  1. 零售流通ERP系统——基础信息的确立与实施
  2. openwrt l7过滤qos配置
  3. go mysql 查询数据_MySQL常用语句之查询数据-Go语言中文社区
  4. 心得---字节流、文件操作、对象序列化
  5. django定义模型类-14
  6. 数据 3 分钟 | TiDB 5.0 正式发布、Graph + AI 2021 全球峰会即将召开、2020 年图灵奖公布...
  7. php 向文件夹中添加HTML文件,批量向html中插入内容
  8. idea2020版Maven依赖成功导入但仍然报错找不到包解决
  9. Oracle 认证下载
  10. iPad PPT演示录屏踩坑及后续ffmpeg处理
  11. 最新免费纯净版PE制作工具V2.1【更新说明】
  12. 安装office相关组件出现错误1310
  13. 1. Zigbee应用程序框架开发指南 - 概述
  14. 期刊投稿时,word文档分栏问题
  15. 01-交换机级联实验
  16. 阿里P8大牛手把手教你!15个经典面试问题及回答思路,全套教学资料
  17. 公交换乘系统c语言,数据结构课程设计报告(公交换乘).docx
  18. 【基础】《操作系统》学习笔记(B站王道考研)(1)
  19. kinslideshow使用时图片和a标签不能换行,否则。无法实现无缝滚动。
  20. linux上如何安装git

热门文章

  1. LeetCode之Missing Number
  2. Android之adb shell dumpsys activity获取task里面的所有actitiy
  3. gearman mysql编译_gearman初探(一、编译和安装)
  4. pythonweb服务器怎么让别人访问_Django配置让其他电脑访问网站
  5. 软件项目管理课后题下载【共5个章(1、3、4、5、6)】
  6. 世界上最奇异的10种树,你都见过吗?
  7. “凡尔赛文学”疯狂刷屏!数学家们也拼命“装”了起来,哈哈哈哈哈
  8. 岛国小姐姐来例假时,男朋友背着她偷偷查手机......
  9. 【完整版】当大师遇到了理工男,只能吐血了...
  10. 从串行线程封闭到对象池、线程池