文章目录
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(Memory Protection Unit)是Cortex-M3处理器中的一个重要组件,作为MMU的子集,用于实现内存分区保护。MPU能够阻止用户程序破坏操作系统数据,隔离任务数据,设置只读区域以及检测存储访问异常,如堆栈溢出和数组越界。当检测到访问违规时,MPU会产生fault异常,通过异常服务例程进行错误分析和修复,提高了嵌入式系统的健壮性和可靠性。在多任务系统中,MPU尤其关键,确保各任务间数据的安全隔离。
最低0.47元/天 解锁文章
736

被折叠的 条评论
为什么被折叠?



