ARM架构中MPU对OS下任务和内存的保护机制
创作时间:
作者:
@小白创作中心
ARM架构中MPU对OS下任务和内存的保护机制
引用
CSDN
1.
https://blog.csdn.net/xiandang8023/article/details/140688754
MPU(Memory Protection Unit)是ARM架构中用于实现内存保护的重要组件,它通过定义内存区域的访问权限、缓存策略等机制,为操作系统提供了一种细粒度的内存管理方式。本文将详细介绍MPU的主要功能及其在多任务环境下的应用。
MPU的主要功能
确定MPU保护区域的起始地址(Base address)和结束地址(Limit address):结束地址是根据起始地址与给定的region大小决定的。
确定MPU区域的访问权限:
- 只读(Read-only):只能读取,不能写入。
- 可读写(Read-Write):可以读取和写入。
- 确定访问级别:
- 特权访问(Privileged-OS Kernel):操作系统内核级别的访问。
- 非特权访问(Unprivileged-TASK):用户任务级别的访问。
- 实现资源隔离和资源共享:
- 在没有使用MPU的情况下:内存仅根据MSP(主堆栈指针)和PSP(进程堆栈指针)分特权级和用户级。此时,特权级可以访问整个堆栈空间,而用户级任务之间无法互相访问对方的堆栈,只能访问分配给自己的堆栈内存,但用户级任务可以随意访问全局变量。
- 启用MPU后:OS会对每个用户任务的独立内存空间设置访问权限。例如,为了防止堆栈溢出,MPU的Size会大于TASK的堆栈Size,多的预留内存作为溢出缓冲。或者将静态区某些数据权限设置为仅供某个任务读写,其他任务只能读,AUTOSAR中RTE的数据Buffer就是这个设计原理,普通全局变量随意访问。对于多核涉及的共享数据,要单独设置region,flash里的代码段一般定义为仅可读。
- 确定MPU保护区域的缓存控制:
- 可缓存(Cacheability):确定哪些内存区域可以通过Cache访问。
- 可缓冲(Normal memory):确定哪些内存区域是通过Normal Memory访问的,内核直接访问芯片内存。
- 可多核共享(Shareability):主要用于多核之间数据共享,主要用于核间通信IPC在SMP(多核同构)或AMP(多核异构)架构中,如果开启共享(Shareability),等同于关闭Cache。
- 实时监测任务对内存的访问行为:一旦发现非法访问就会触发异常,如栈溢出,数组越界,任务越界访问动态分配的内存等。
MPU与MSP、PSP的区别
MSP和PSP主要关注的是栈空间的管理和使用,而MPU则是为了提供更细粒度的内存访问控制和保护机制。MPU通过硬件对划分的Region更细化权限控制,MSP和PSP 指针是 CPU 架构层面的特权级划分,MPU 机制是基于内存区域的访问控制。只能说给系统提供更加细致和可靠的内存保护功能。
MPU的缓存控制
Cortex-M7的缓存控制
Cortex-A7(含MMU)的缓存控制
Shareability的使用场景
主要用于多核之间数据共享,主要用于核间通信IPC在SMP(多核同构)或AMP(多核异构)架构中,如果开启共享(Shareability),等同于关闭Cache。
热门推荐
足协公布重磅处罚:43人终身禁足,足坛反腐持续深化
智能化绩效评估助力酒吧降本增效,提升顾客体验
2024中超赛季明日揭幕,足协三大措施重塑联赛公信力
铁人队2025赛季目标前四,李金羽挂帅推进俱乐部改革
从麋鹿到壶嘴:这些脑筋急转弯考验你的想象力
脑筋急转弯:这些坑人笑话为什么这么好笑
湖北省中西医结合医院:抗疫先锋
北京和平中西医结合医院教你用中药告别口腔溃疡和口臭
70%的996职场人面临情绪问题,专家解析如何有效管理
张伟的乐观,一菲的直率:《爱情公寓》里的情绪智慧
从戴望舒到AR技术:古典诗词的现代传承之路
石城社区低血糖科普讲座火爆进行中
低血糖诊断标准揭秘:你知道多少?
低血糖救星:糖果or葡萄糖片?
天津殡葬服务选择指南:资质、服务、价格、个性化四要素
年轻人立遗嘱成新趋势:不只是财产分配,更是责任与爱
高铁座位选择全攻略:靠窗还是靠过道?一文教你轻松选座
曾侯乙编钟:战国时期“一钟双音”的音乐奇迹
高铁座位ABCDF,你最爱哪一排?
高铁座位怎么选?这份实用指南请收好!
高铁座位分布图揭秘:选座不再难
曾侯乙编钟入选中学教材,展现2400年前战国音乐文明
曾侯乙编钟:65件青铜铸就,一钟双音展现先秦音乐辉煌
澳超第13轮:惠灵顿凤凰主场迎战阿德莱德联,谁能笑到最后?
澳超焦点战:惠灵顿凤凰主场迎战阿德莱德联,谁能笑到最后?
手机游戏Top10:从《弹壳特攻队》到《抽卡监狱》
从大富翁到古墓丽影:DOS时代12款游戏的创新之路
螨虫皮炎怎么办?三种治疗方案+八条预防措施
库尔德宁:新疆伊犁的自然瑰宝
尿失禁患者的心理护理指南