Cortex M3:MPU

文章目录

0

参考资料:
http://www.szcdxkmcu.com/PIC/PIC/CM3权威指南CnR2.pdf
MMU 是应用处理器中的概念,主要作用是实现虚拟内存和内存分区。由于其具有不确定性,所以嵌入式设备中不能容忍,但是嵌入式中也不能没有分区保护的功能,于是内存分区便引入进来,称为MPU。因此可以把MPU称为MMU的子集。
MPU有如下的能力可以提高系统的可靠性:

  • 阻止用户应用程序破坏操作系统使用的数据
  • 组织一个任务访问其他任务的数据区,从而把任务隔开。
  • 把关键数据区设置为只读,从根本上消除被破坏的可能
  • 检测意外的存储访问,如堆栈溢出,数组越界。
  • 可以设置存储器region的其他访问属性,比如是否缓存,是否缓冲等。

在这里插入图片描述
Cortex-M3 有一个可选的存储器保护单元。配上它之后,就可以对特权级访问和用户级访问分别施加不同的访问限制。当检测到犯规(violated)时, MPU 就会产生一个 fault 异常,可以由fault 异常的服务例程来分析该错误,并且在可能时改正它。
MPU 有很多玩法。最常见的就是由操作系统使用 MPU,以使特权级代码的数据,包括操作系统本身的数据不被其它用户程序弄坏。 MPU 在保护内存时是按区管理的(“区”的原文是 region,以后不再中译此名词——译注)。它可以把某些内存 region 设置成只读,从而避免了那里的内容意外被更改;还可以在多任务系统中把不同任务之间的数据区隔离。一句话,它会使嵌入式系统变得更加健壮,更加可靠(很多行业标准,尤其是航空的,就规定了必须使用 MPU 来行使保护职能——译注)。
当出现MPU的异常中断时,编号是4。
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值