12015|2

420

帖子

0

TA的资源

纯净的硅(初级)

楼主
 

认识MPU(内存保护模块) [复制链接]

为了加深对raw os 的MPU内存保护模块的理解,感觉有必要像大家解释清楚什么叫MPU。只有正确认识了MPU,才能最有效地运用到实战中去。
对于arm cpu , MPU模块目前主要使用在cortex-m3 以及cortex-m4cpu中,这两种cpu都是属于arm7m 的架构。
首先一个正确的思路是下载合适的cpu体系架构文档,然后参阅其中的章节。做到学习新事物以官方文档为主。
进入以下网站地址:
然后下载文档:


这样参考的资料就有了。
打开下载的手册翻到:


可以看到B3.5这一个章节解释了所有MPU内存保护模块的内容。下面就这些内容将解释一些关键性的内容。
系统主要运行在两种模式,第一种是特权模式,第二种是非特权模式(用户模式)。MPU所有的工作都是围绕这两个展开的。MPU保护模块主要是把内存分成region, arm v7m支持的region个数有8个。MPU最小能支持32字节的region, 这样整个4G空间可以最高被划分成8块,每块的权限特性都可以被设置。
MPU最主要的一个特性是没有虚拟地址的特性,所以cpu不需要做虚拟地址到物理地址的转换,所以在软件上省去了软件设置,交换page table等动作,使得整个系统的时间是可预测的,而且软件的执行效率大大提高。
MPU实现了什么功能呢?下图是MPU的一个内部寄存器名字叫: MPU_RASR



可以看到这个寄存器内部有AP这两位,具体的含义如下:



上面表格很清楚,通过设置AP3位,完全可以控制特权模式和非特权模式(用户模式)的读写权限。
至于其它的寄存器功能,手册上已经写得很清楚了,静下心来琢磨下,下载官网的



通过以上的模拟(需要安装keil mdk), 能够快速的掌握MPU的使用方法。

最新回复

看了上一遍文章,了解了一下。大概有些理解了,还得细看下。  详情 回复 发表于 2013-9-15 02:41
点赞 关注

回复
举报

2

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

MPU应用

MPU应用在M3/4上,只知道有这个功能。还没看到具体的应用。也想不出在哪里可以应用到。
1.M3程序跑在flash当中,变量在ram当中,
2.ram里的变量应该都需要读、写权限,因此没必要保护。
3.flash里的程序当然是只有只读权限,应用想写flash也写不了,除非特殊解锁。
所以我以为M3不需要MPU啊??
 
 

回复

2

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
看了上一遍文章,了解了一下。大概有些理解了,还得细看下。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表